基于基于Android的的MJPEG网络摄像机设计网络摄像机设计
1 系统硬件组成与网络架构 摄像机硬件采用三星公司推出的基于ARM9架构的S3C2440A芯片,该处理器主
频达到400 MHz可以满足实时压缩,MJPEG视频流可以达到320×240分辨率25 fps的性能要求。外围搭配64
MB SDRAM、256 MB NAND Flash,网络功能由DM9000以太网MAC控制芯片负责,摄像头模块由USB控制器
控制,系统供电由3片LM71117组成,分别输出3.3 V、1.8 V、1.25 V电压,辅助外围接口构成摄像机硬件结
构。S3C2440A系统硬件框图如图1所示。 图1 S3C2440A系统硬件框图 网络摄像机是互联网上的TC
1 系统硬件组成与网络架构系统硬件组成与网络架构
摄像机硬件采用三星公司推出的基于ARM9架构的S3C2440A芯片,该处理器主频达到400 MHz可以满足实时压
缩,MJPEG视频流可以达到320×240分辨率25 fps的性能要求。外围搭配64 MB SDRAM、256 MB NAND Flash,网络功能由
DM9000以太网MAC控制芯片负责,摄像头模块由USB控制器控制,系统供电由3片LM71117组成,分别输出3.3 V、1.8 V、
1.25 V电压,辅助外围接口构成摄像机硬件结构。S3C2440A系统硬件框图如图1所示。
图1 S3C2440A系统硬件框图
网络摄像机是互联网上的TCP/IP设备,系统网络拓扑图如图2所示。其中在家庭区域内根据安防的特点在大门走廊、客厅
内、阳台区域分别布置摄像机,再由网线连接到路由器,配置路由器参数映射每个摄像机独立端口与IP地址,即完成Internet
接入。远端由固定位置的PC机,移动位置的3G笔记本和随身携带的3G Android手机组成,PC机可以通过WEB浏览器访问与
控制网络摄像机,Android手机通过客户端实现实时访问。
图2 系统网络拓扑图
2 系统软件设计系统软件设计
2.1 网络摄像机软件设计
搭建摄像机需要Linux系统环境,首先移植Bootloader,对Linux 2.6.32内核进行裁剪,加载Linux UVC(USB video device
class)驱动及相关驱动,将编译好的Linux系统镜像烧写到ARM板Nand Flash中,对Bootloader设置启动引导地址,即完成软
件运行环境搭建[2]。
分析网络摄像机性能需求与拓展性,须满足下列条件:
◆ 视频监控实时性;
◆ 支持多客户端同时连接;
◆ 图像识别算法或预留接口;
◆ 功能模块化满足后期开发可扩展。
因此,采用多线程架构与互斥锁机制来保证实时性、模块化的思想设计代码结构。软件程序主流程如图3所示。