APP下载

基于PXA270芯片的嵌入式数字视频采集系统

2012-03-15孙朝云

电视技术 2012年15期
关键词:嵌入式客户端芯片

李 伟,孙朝云,颜 鹏

(长安大学信息工程学院,陕西西安710064)

嵌入式系统因其具有体积小、价格低、性能高、稳定性好等优点,被广泛地应用于各个领域[1]。数字化视频系统可以通过充分利用计算机的快速处理能力对视频数据进行压缩、分析、存储和显示等处理。嵌入式数字视频系统则能够结合嵌入式系统与数字视频系统两者的优点。PXA270芯片是基于XScale处理器芯片,它配合嵌入式Linux或Wince操作系统,理论上支持任何媒体格式,并且可以通过软件升级来支持未来媒体格式[2]。但是媒体播放对硬件有极高的要求,因此需要用多媒体加速芯片来配合PXA270芯片进行视频加速与2D或3D加速。本文介绍了以PXA270芯片为核心配合SM502图形加速显卡芯片实现的嵌入式视频采集系统[3]。

1 系统总体结构

该系统由嵌入式端视频图像采集显示与压缩、压缩视频数据有线传输、PC端视频数据的显示与存储3部分组成。系统采用PXA270核心芯片内装有Microsoft Windows CE 5.0操作系统。系统首先通过Camera采集现场实时视频信息,然后在嵌入式平台上对视频信息进行捕捉、显示、压缩。最后通过使用以太网线在嵌入式平台与主机之间搭建一个有线局域网络,压缩的视频数据可以通过该局域网络可靠地传输到主机端,用户可以通过流媒体播放程序在主机端对远程视频进行查看、存储等处理。本文所设计的视频采集系统总体结构如图1所示。

图1 视频采集系统总体结构图

1.1 系统硬件平台的构成

系统硬件平台选用了PXA270芯片作为核心芯片,PXA270芯片是基于XScale处理器的芯片。该芯片具有支持高分辨力显示、低功耗、高可靠性以及较强的多媒体功能等特点。PXA270支持Microsoft Windows CE操作系统。本平台采用SM5022D图形加速显卡芯片,支持的分辨力可达1 024×768,在多媒体处理能力方面比较有优势。同时Video视频接口(支持PAL制式的CVBS视频信号输入)和1个串口。可以在工业温度范围内稳定工作,特别适合工业控制、视频监视、远程监控、现场通信等领域的应用。硬件平台系统如图2所示。

平台的核心是PXA270芯片,同时为了进行多媒体播放,SM502图形芯片配合PXA270进行了视频与2D加速。SM502图形加速芯片连接了LCD接口进行视频的显示,同时它还连接到了模拟视频处理模块,模拟视频处理模块接收到CVBS模拟视频信号后进行处理并其将转换为数字信号传入SM502芯片。音频通过话筒等输入设备进行采集后经过AC97编码后输入到PXA270中,同时音频信号输出时首先经过AC97解码然后输出到音响设备。10 M/100 M以太网控制器负责把嵌入式端的视频音频信号传到PC端进行后续处理。通过COM口可以进行程序的调试下载,以及通信等功能。

图2 基于PXA270嵌入式平台的组成

1.2 系统开发软件环境介绍

嵌入式端程序使用eMbedded Visual C++4.0 with SP4开发,该程序运行平台为安装在基于PXA270芯片构成的硬件平台的Windows CE 5.0平台上。

PC端程序使用Visual C++6.0开发,该程序运行平台为Windows平台。

1.3 嵌入式端视频的采集与显示

嵌入式端视频捕获函数库由 Capture.h,Capture.lib,Capture.dll这3个文件组成。Capture.h为该库头文件;Capture.lib为静态链接库文件,在使用该函数库编译工程时,应链接上它;Capture.dll为动态连接库文件,使用本函数库编译生成的应用程序需要该DLL文件才能正常运行。嵌入式端提供了视频输入接口,可以通过对视频采集芯片的操作进行视频采集编程。嵌入式端使用了显卡芯片来加速图像显示,该显卡还支持视频输入直接在显卡上显示,这样就可以让输入的视频不经CPU处理直接通过显卡显示,从而实现本地视频实时显示。并且,这种视频显示方式也不消耗CPU资源。本地视频实时显示的原理如图3所示。

图3 嵌入式端视频实时显示原理

嵌入式端视频实时显示总体流程为:首先,系统中使用的ACE-371摄像头输出PAL制式的CVBS信号。当摄像头传输CVBS信号到嵌入式端时,在主板上对所传入的数据进行处理。处理过程包括模拟视频数字化、视频显示以及视频压缩。在处理视频数据过程中用到的主要的函数有:启动视频捕获函数void CAP_Start(void),停止视频捕获函数void CAPStop(void),设置视频压缩品质函数void APSetCompQuality(COMP_QUALITY quality),获取捕获视频位图信息头函数,CAPGetBmpHead(BITMAPINFOHEADER*pbmHead)获取捕获视频位图数据函数原型LPVOID CAPGetBmpData(LPDWORD pdwSize),设置视频显示模式函数原型void CAPSetMode(int nMode)读取压缩后的视频帧函数原型LPVOID CAPReadFrame(DWORD*pdwSize)。除以上函数之外,还有设置视频捕获的亮度、对比度、饱和度、显示区域等函数。嵌入式端视频采集界面如图4所示。

图4 嵌入式端视频采集界面(截图)

运行嵌入式端程序后会显示图4所示界面,点击Start开始视频的显示,点击Stop则停止,点击Snap进行图像抓取。嵌入式端在局域网中作为客户端,传递视频数据时只需要在界面中设置好Server IP然后点击Connect按钮。此时要注意PC的IP地址要与嵌入式端的IP设置在同一网段内。

1.4 基于TCP/IP协议的嵌入式视频传输设计

TCP/IP协议是在网络编程中被广泛采用的一种协议。它是一套把因特网上的各种系统互连起来的协议组,目前TCP/IP协议已成为最常用的网络标准之一[4]。在本系统中数据传输部分采用TCP/IP协议进行视频数据传输。

在整个嵌入式视频采集系统中,嵌入式端作为客户端运行WINCE5.0操作系统。在该操作系统上运行的是客户端软件。局域网络中的PC机作为服务器,服务器端可以运行各种操作系统。本系统中服务器上运行的是Windows操作系统,在该操作系统上运行服务器软件。

套接字是支持TCP/IP网络通信的基本单元。套接字有3种不同的类型:流式套接字、原始套接字和数据报套接字。其中流式套接字和数据报套接字是最常用的,两者的区别在于它们各自使用不同的协议。数据报套接字使用的UDP协议,UDP协议是无连接的,数据包以独立包形式发送,不能保证数据无错传输,同时不能保证数据的有序传输[5]。流式套接字使用TCP协议,TCP协议是面向连接,保证数据不丢失、无差错、不重复地传到接收方,同时保证数据的有序传输[6]。本系统中视频数据的网络传输部分软件的编写采用流套接字编程技术。首先在服务器端和客户端分别创建本地套接字对象,然后通过调用套接字对象的方法进行建立连接、发送和接收数据和关闭连接等操作。图5展示了流式套接字编程的流程:首先TCP服务器端创建本地流式套接字对象,然后使用套接字对象的Bind方法绑定本地IP与端口号,接着套接字对象的Listen方法开始监听客户端连接请求,当服务器监听到客户端连接请求时,服务器端的套接字对象将调用Accept方法接受客户端连接请求的同时对客户端进行应答,建立连接。此时服务器端获得一个全新的与该客户端通信的套接字。客户端的编程首先建立客户端的本地流式套接字对象,然后调用套接字对象的Connect方法向服务器端提出建立连接的请求,服务器进行应答后建立连接。然后服务器与客户端进行视频数据的传输。

图5 面向连接的TCP套接字编程流程图

1.5 PC端视频采集与显示

PC端视频捕获函数库由 TeleeVideo.h,TeleeVideo.lib和TeleeVideo.dll这3个文件组成。TeleeVideo.h为该库头文件;TeleeVideo.lib为静态链接库文件,在使用该函数库编译工程时,应链接上它;TeleeVideo.dll为动态连接库文件,使用本函数库编译生成的应用程序需要该DLL文件才能正常运行。Xscale处理器支持WMMX指令,该指令具有较强的多媒体数据处理能力,因此可以通过使用该指令对视频数据进行实时压缩,并经由以太网发送到远程主机上再解码显示,这样便能实现远程视频监视。在VC++6.0中编程时用到的主要函数有用于获取由下位机程序压缩的视频帧的有关信息函数CAPGetFrameInfo(CAP_FRAMEIN*pFrameInfo,void*pStream,DWORD dwSize)和用于对下位机压缩的视频帧进行解码。PC端视频的捕获与显示的总体流程如图6所示。

图6 PC端视频捕获与显示的总体流程

摄像机采集到的视频信息传入嵌入式端,嵌入式端进行视频信号的数字化后进行压缩,压缩后通过以太网线发送到PC端。PC端捕获到视频数据后对视频数据进行解码,然后进行显示视频、保存视频,以及截取图像等处理。PC端视频显示程序界面如图7所示。

运行PC端程序,点击Start启动视频显示功能,同时界面中会显示客户端IP信息以及传输的视频压缩帧率信息。点击Recording会启动录制视频功能,点击Snap进行截图。

2 结论

该系统基于由PXA270芯片构成的嵌入式平台和WINCE5.0操作系统,通过摄像头采集现场实时视频信息,并对其进行压缩。然后使用实时流式传输方式将视频数据在由嵌入式平台与PC机之间构建的有线局域网络之间进行传输。该系统具有高可靠性、高稳定性、安装容易等优点。该系统可以应用于工业控制、远程监控、视频会议等领域。

图7 PC端视频显示程序界面(截图)

[1]全青松,余厚全.嵌入式视频监控终端的设计与实现[J].光电技术应用,2010,25(6):53-55.

[2]刘宇.基于ARM9的嵌入式可视电话终端的设计与实现[D].大连:大连理工大学,2006.

[3]汪庆.基于Blackfin DSP的嵌入式数字家庭系统平台的研究与实现[D].武汉:武汉科技大学,2007.

[4]胡健生,臧晓昱.嵌入式多路视频采集显示系统设计[J].液晶与显示,2010,25(6):831-835.

[5]曲宏明.基于嵌入式Linux的数字视频监控系统研究[D].大连:大连海事大学,2008.

[6]罗翊.基于ARM平台的嵌入式实时网络视频监控系统[J].中国科技信息,2010,22(45):103-105.

[7]李岸,许雪梅,郭巧云,等.基于ARM11的视频实时传输系统[J].计算机系统应用,2010,19(11):15-18.

猜你喜欢

嵌入式客户端芯片
芯片会议
关于射频前端芯片研发与管理模式的思考
如何看待传统媒体新闻客户端的“断舍离”?
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
大枢纽 云平台 客户端——中央人民广播电台的探索之路
搭建基于Qt的嵌入式开发平台
嵌入式软PLC在电镀生产流程控制系统中的应用
多通道采样芯片ADS8556在光伏并网中的应用
Altera加入嵌入式视觉联盟