DSP/BIOS在数字图像处理中的应用
字体: 小 中 大 | 打印 发布: 2007-11-29 11:20 作者: 当当 来源: Internet 查看: 42次
传统的数字图像处理系统一般是基于PC机的,由安装在PC机中的图像采集卡采集图像,而后在PC机上进行后端处理。随着多媒体数码产品需求的不断扩大,数字图像处理设备要求越来越小型化,借助飞速发展的可编程器件,嵌入式数字图像处理系统成为发展的方向。
DSP具有独特的哈佛结构,可以实现软件流水,并借助独特的超长指令字结构(VLIW)可以完成大运算量的数字图像处理工作。TI公司推出的DSP/BI0S提供了众多的模块及面向用户的API接口,包括多优先级多任务系统调度、内存管理、硬件driver抽象以及数字信号处理实时数据调试及交换的支持,可以进行多任务处理、管理复杂的硬件设备和实时数据传输,这为DSP在数字图像处理应用中的编程提供了一种利器。
一 数字图像处理系统的硬件结构
该数字图像处理平台是基于TI公司推出的高性能DSP评估板DM642 EVM[参考文献1、2、3],该评估版可以用于视频监控,视频、音频编解码,网络流媒体等多种用途。它包括一片TMS320DM642数字多媒体处理芯片,4M的flash,32M 133MHz SDRAM,256K的I2C EEPROM,以及一块支持OSD功能的FPGA,它还拥有丰富的外部接口,如三个可以配置的视频端口,一个音频接口,一个以太网接口以及PCI口等。
该评估板的核心为TMS320DM642数字多媒体处理芯片,芯片的内核为C64x DSP核,时钟频率为600MHz,指令执行速度高达4800MIPS,具有6个并行的算术逻辑单元与两个并行的硬件乘法器,利用先进的超长指令字结构(VLIW),DM642可以完成复杂的数字图像处理运算。为了提高处理器的存取速度,C64x还提供了一些特别适用于数字图像处理的指令。
整个系统结构框图可分为三个部分,见图1。摄像头采集的视频为PAL制,经SAA7115H数字化,得到的图像为CIF,大小为352*288个像素,4:2:2格式8位宽的YCbCr格式的信号。该视频解码器可以通过DM642的I2C总线编程设置其内部寄存器以接受大多数的视频信号,如NTSC,PAL以及SECAM等。
图1 数字图像处理系统结构框图
DSP读入数字化的视频数据,完成需要的数字图像处理运算。本程序调用功能强大的Image Lib(图像处理库),它包括了许多现成的经过优化的函数,可以完成sobel边缘检测、图像二值化、DCT变换等多种功能。另外还可以自己编写程序实现更复杂的功能,如MPEG-4编码、网络协议等。
经过DSP处理后的数字视频经过Phillips SAA7105视频解码器进行数模转换,而后显示在监视器上。
二 DSP/BIOS实时操作系统介绍
DSP/BIOS是一个简易的嵌入式操作系统[参考文献4、5、8],主要是为需要实时调度、同步以及主机-目标系统通讯和实时监测的应用而设计的。DSP/BIOS集成在CCS中,不需要额外的费用,但不提供源码,它是 TI公司倡导的 eXpressDSP 技术的重要组成部分。
DSP/BIOS本身只占用很少的资源,而且是可裁减的,它只把直接或间接调用的模块和API连接到目标文件中,最多为6500字,因此在多数应用中是可以接受的。它提供底层的应用程序接口,支持系统实时分析、线程管理、调用软件中断、周期函数与后台运行函数(idel函数)以及外部硬件中断与多种外设的管理。利用DSP/BIOS编写代码,借助CCS提供的多种分析与评估工具,如代码执行时间统计、显示输出、各线程占用CPU的时间统计等,可以直观地了解各部分代码的运行开销,高效地调试实时应用程序,缩短软件开发时间,而且DSP/BIOS是构建于已被证实为有效的技术之上的,创建的应用程序稳定性好,软件标准化程度高,可重复使用,这也减少了软件的维护费用。
DSP/BIOS组件由以下3部分组成:
1. DSP/BIOS实时多任务内核与API函数
使用DSP/BIOS开发程序主要就是通过调用DSP/BIOS实时库中的API(应用程序接口)函数来实现的。所有API都提供C语言程序调用接口,只要遵从C语言的调用约定,汇编代码也可以调用DSP/BIOS API。DSP/BIOS API被分为多个模块,根据应用程序模块的配置和使用情况的不同,DSP/BIOS API函数代码长度从500字到6500字不等。CCS FOR C6000 V2。2提供的DSP/BIOS主要的API模块包括以下几种:CLK模块、HST模块、HWI模块、IDL模块、LOG模块、MEM模块、PIP模块、PRD模块、RTDX模块、STS模块、SWI模块、DEC模块、SIO模块、MBX模块、QUE模块与SEM模块。各模块的具体使用方法见参考文献[5,8]。
2. SP/BIOS配置工具
基于DSP/BIOS的程序都需要一个DSP/BIOS的配置文件,其扩展名为.CDB。DSP/BIOS配置工具有一个类似Windows资源管理器的界面,它主要有两个功能:
在运行时设置DSP/BIOS库使用的一系列参数;
静态创建被DSP应用程序调用的DSP/BIOS API函数所使用的运行对象,这些对象包括软件中断、任务、周期函数及事件日志等。
3. DSP/BIOS实时分析工具
DSP/BIOS分析工具可以辅助CCS环境实现程序的实时调试,以可视化的方式观察程序的性能,并且不影响应用程序的运行。通过CCS下的DSP/BIOS工具控制面板可以选择多个实时分析工具,包括CPU负荷图、程序模块执行状态图、主机通道控制、信息显示窗口、状态统计窗口等。与传统的调试方法不同的是,程序的实时分析要求在目标处理器上运行监测代码,使DSP/BIOS的API和对象可以自动监测目标处理器,实时采集信息并通过CCS分析工具上传到主机。实时分析包括:程序跟踪、性能监测和文件服务等。
三 基于DSP/BIOS的程序开发
基于DSP/BIOS的程序开发是交互式的可反复的开发模式[参考文献6、7、8],开发者可以方便地修改线程的优先级和类型,首先生成基本框架,添加算法之前给程序加上一个仿真的运算负荷进行测试,看是否满足时序要求,然后再添加具体的算法实现代码。
使用DSP/BIOS开发软件需要注意两点:
所有与硬件相关的操作都需要借助DSP/BIOS本身提供的函数完成,开发者要避免直接控制硬件资源,如定时器、DMA控制器、串口、中断等
文章评论(0条评论)
登录后参与讨论