摘 要: 采用TI公司的TMS320C5402和DaVinci系列TMS320DM6437双DSP芯片为主要处理器,构建了一个基于DSP/BIOS的视频图像采集处理平台。从功能的角度将系统划分为视频采集任务、视频算法处理任务、数据通信任务和人机交互任务4个相对独立的线程,这4个线程在实时操作系统DSP/BIOS不同优先级的调度下有序地工作。测试结果表明,整个系统运行稳定,实时性较高。
关键词: DSP/BIOS;图像处理平台;线程
随着信息社会的发展,视频图像采集处理系统在远程控制、智慧城市、安防监控等领域应用越来越广泛。实时视频图像信息的获取对于系统分析数据至关重要,而且视频图像数据流量大,带宽要求高。嵌入式实时处理系统具有实时性高、体积小、成本低、算法移植简单等特点[1]。这类嵌入式实时图像处理系统以DSP作为处理器的发展方向,而DSP因其特殊的数字信号处理能力(集成MAC、FFT等模块)能够有针对性地满足视频图像处理的需求。
本文以DaVinci系列的视频图像处理器TMS320DM6437作为该软件平台的硬件支撑,采用TI自带实时操作系统DSP/BIOS,通过对多任务划分、调度,设计上下位机,将图像信息实时传到PC,通过PC端控制DSP平台来构建图像采集处理平台,最终移植常见图像处理算法对整个系统进行功能测试与结果分析。
1 系统开发平台简介
1.1 硬件开发平台
本文所设计的实时视频图像采集处理平台主要在CCD摄像头、DEC6437开发板、仿真器、显示器、USB转串口线和PC等搭建的硬件平台上,仿真器硬件设备是SEED-XDS510PLUS,由于此平台的RTOS调试,算法移植都是在集成开发软件CCS 3.3下设计完成的,CCS需要在PC中运行,并且调试UART时,需要在PC上观察上位机软件接收和发送状态[2]。
TMS320DM6437是TI公司的一款DaVinci系列处理器,是专为各种视频图像处理应用而开发的独立模块,能够支持高解析度的视频编码,同时其性价比很高。
1.2 软件开发平台
在图像采集处理系统的设计过程中采用了TI开发在CCS中集成的实时操作系统 DSP/BIOS。
BIOS是一个可扩充、可裁剪的RTOS,主要可以分成分片实时内核、实时评测工具(RTDX)和芯片自带库(CSL)三部分。DSP/BIOS内包括常见嵌入式通用库和API。DSP/BIOS即时库包括抢占式多线程调度、任务通信及同步、中断优先级配置、I/O服务和存储器内存管理。DSP/BIOS根据功能可分为4个主要模块,DSP/BIOS确保硬件中断(HWI)、软件中断(SWI)、任务(TSK)和后台线程(IDL)4种线程运行在线程间,允许通信和同步,并且使能高优先级线程抢占低优先级线程[3]。
2 实时视频图像采集处理平台的总体架构设计
本文采用双DSP芯片,其中TMS320C5402为控制器,TMS320DM6437为算法处理器,以CCS 3.3为软件开发背景,完成了基于DSP/BIOS的图像采集处理平台的软件设计。TMS320C5402作为控制器,主要负责人机交互界面的控制,它与TMS320DM6437通过多通道缓冲串口通信,控制器主要对键盘数据的读入和LCD数据的输出。同时系统还添加了远程控制模块,通过PC发送控制指令调度DM6437处理器,能够完成切换算法,调停当前状态等功能,系统总体架构如图1所示。
3 基于DSP/BIOS的系统软件设计
视频图像采集处理软件平台对任务复杂、时序要求苛刻,采用基于DSP/BIOS的实时调度内核事先配置线程优先级以及线程触发、挂起、阻塞等相应条件,软件流程如图2所示。DSP/BIOS内核调度是整个系统的核心。BIOS首先需要初始化DSP,硬件上电复位LOAD程序入口地址,然后需要调用BIOS_Init对BIOS初始化,仍然要在main( )函数中对片内外设等常见DSP配置初始化,这时不能对SWI、TSK等线程操作,因为还没启动BIOS,仍没有起用调度组件,调用BIOS_start完成对BIOS的启动就可进入IDL_loop空闲循环,等待HWI、SWI、TSK等线程的就绪[4]。
本系统硬件中断(HWI)有两个:一是DM6437和C5402通信过程所用的McBSP,键盘数据读入时触发中断;另一个是UART中断,PC上位机有控制指令发送时就会触发UART中断,进入UART中断服务程序将就绪UART接收数据软中断,第一个中断服务程序中和第二个中断触发的软中断中都将就绪TSK1,读取控制指令,选定算法模式,记录最终选择的状态,并对Mail_box赋新值。因为多个算法任务都处于挂起状态,一旦mail_box对应自身之前的Pend值,对应的算法任务将会立即就绪,如果当前线程的优先级都小于对应算法优先级,算法线程将会立即执行。
视频图像处理算法完成后,还可以实现对图像的滤波、LCD显示关键信息。线程处理完成后视频图像输出任务就绪,还原视频信号,回放处理后的视频[5]。
4 常见视频图像处理算法的移植
为了测试基于DSP/BIOS的多任务视频图像处理平台,移植几种算法来验证处理效果。软件平台上常见算法的移植有图像增强算法移植、图像阈值算法移植、边沿检测算法移植和图像滤波算法移植等。
如图2所示,图像增强算法移植包括任务2执行的单直方图算法移植和任务3执行的双直方图算法移植。任务3在任务2的基础上增添了对整幅图像提取最佳阈值提取(OTSU),以此阈值将原图像划分为两个子图,分别均衡[6]。
边沿检测算法移植使用任务5的图像边沿检测算法。相对于其他任务,图像的边沿检测任务为独立任务,可用来检测任务之间的切换实时性。
图像滤波算法移植采用了任务7的滑动平均滤波算法。任务7作为非必需任务,可根据按键选择是否添加在任务1~任务6后。
5 系统测试结果及分析
5.1 PC与TMS320DM6437通信结果
PC与TMS320DM6437串口通信采用波特率为19.2 kHz,传输数据格式为1 bit停止位,8 bit数据位,无校验位。在PC接收数据时,接收200个8 bit数据,均与TMS320DM6437内存中存储的数据相同,可见传输过程误码率极低。如果PC发送数据,TMS320DM6437接收成功,LCD会相应显示,同时处理器切换不同算法。LCD显示串口接收成功界面显示如图3所示,上位机界面如图4所示。
5.2 多线程通信及同步结果
本系统中多线程最高优先级为UART接收和McBSP中断,其次为软中断UART数据读入和UART发送,最后为任务,任务中划分为多个算法的任务,其相互间通过按键或PC指令切换,其线程间根据Mail_box(n)通信,其同步是根据SEM(m),在DSP/BIOS调试界面可见多线程间切换示意图,如图5所示,可见程序运行正常。
5.3 视频图像处理效果及人机显示
本视频图像采集处理平台软件上移植了多种视频图像处理算法,以下将演示每一个图像处理算法在本系统平台所表现的效果,如图6~图8所示。
图6(a)中最左边的一幅图像为原始图像,中间及右边中的图像为经过单直方图处理后的结果,中间和右边的图像区别为均衡系数不同,可见经过单直方图增强后前景和背景区别明显增强。图6(b)中左边的一幅图像为原始图像,中间及右边的图像为经过双直方图处理的结果,中间和右边的图像区别为双直方图中的均衡系数不同。可见,经过双直方图增强后,不仅前景和背景区别明显增强,而且保持原背景亮度信息。
图7(a)中图像信息依次分别为原始图像、二值化后图像。系统采用最佳阈值提取算法,提取合适阈值。由图可见,二值化后的图像有噪点,由于阈值上下有波动或光线原因,因此采用3×3滑动平均滤波,对局部噪声滤除,图7(b)即为滤波后的图像,可见噪点明显降低,图像连续性较好。
如图8所示,本系统对边沿检测算法处理时采用对整帧图像处理,图8(a)为原始图像,图8(b)为拉普拉斯边沿检测结果,可见系统已经检测到图像的边沿。
该软件平台实时性相对高,在视频图像播放处理数据时不会出现明显的延时和卡顿;在用键盘或PC发送控制指令切换算法时同步效果很好,无可视延时。多任务的调度和同步不容易出现死循环,当改变调度次序时也能够继续正常工作。人机交互界面LCD显示能够随着平台状态变化及时显示提醒。TMS320DM6437通过UART向PC发送数据时误码率低。平台上处理的常见图像处理算法均能够获得良好的效果,可见该视频图像采集处理平台软件性能总体上优异。
参考文献
[1] 王俊. 基于嵌入式系统的图像处理软件平台的实现[J].仪表技术, 2006(2):10-22.
[2] 李彬.基于DSP/BIOS的RTDX 实时信号处理系统的实现[J]. 科技信息前沿报, 2009,33(2):33-41.
[3] 刘家兵. 基于DSP/BIOS的图像采集处理平台软件设计研究[D].哈尔滨:哈尔滨工程大学, 2008.
[4] 张叶.基于TMS320C6x系列DSP/BIOS平台的实时电视跟踪系统设计[J]. 电子器件, 2007,30(1):300-302.
[5] 祝佳磊. 基于Linux平台的图像采集系统的设计与实现[J]. 计算机工程与设计,2012,33(6):2334-2337.
[6] 周杰. DSP/BIOS实时多任务操作系统内核的研究[J].科技传播, 2010(12):208-220.