1、基于 ARM9 的嵌入式 3G 无线视频监控系统设计 国内外市场上主要推出的是数字控制的模拟视频监控和数字视频监控两类产品。前者的技术发展已经非常成熟,产品性能稳定, 在实际工程中得到了广泛应用。 后者是新近崛起的以计算机技术及图像视频压缩技术为核心的新型视频监控系统, 该系统在解决模拟视频监控系统的部分弊端的基础上迅速崛起。在互联网的普遍推广和网络带宽逐渐提高的背景下,视频监控技术飞速发展, 出现了集多媒体技术、网络通信技术、嵌入式技术于一体的嵌入式网络视频监控系统。 目前国内嵌入式视频监控系统的研究有 了很大的发展, 但是国内对嵌入式无线视频监控系统的研究还比较少。本文介绍了自主开发的基于
2、 ARM 的嵌入式无线视频采集系统设计方案。该方案采用 S3C2410 嵌入式处理器和 ARMLinux 操作系统, 利用通过自行开发的视频服务器软件,通过 3G 无线上网卡完成客户端与视频服务器的通信。介绍了系统的硬件结构、服务器端软件的总体结构、驱动程序的构建、图像的采集和压缩以及传输模块的设计,并进行了测试。实验结果表明, 系统采用 H.264 编码技术在保证视频传输质量的同时具有良好的带宽适应能力。 1 系统总体结构 本系统 由监控现场摄像头、嵌入式视频服务器、客户端三部分组成。监控现场的摄像头实现图像的采集,并把采集的图像信息通过内部总线传送给嵌入式视频服务器。嵌入式远程视频监控系统
3、是一个基于 S3C2410 处理器、 H.264 压缩、 Web 服务器和 Linux 操作系统的嵌入式系统, 它的主要功能是对摄像头采集到的图像进行 H.264 压缩编码, 并对编码后的图像通过 3G 无线网络进行传输。客户端主要完成图像的接收和解压缩, 用户可以通过 Web 浏览器访问嵌入式视频服务器来观看摄像头采集到的图像,从而实现远程视频监控。嵌入式远程视 频 监 控 系 统 总 体 结 构 如 图 1 所示。图 1 嵌入式远程视频监控系统总体结构 2 系统硬件结构 系统硬件由图像传感器 MI360 、 3G 无线模块 MC8630 、图像压缩芯片 ZC0301 、微处理器芯片 S3C
4、2410 、以太网控制芯片、 SDRAM 等芯片组成。 S3C2410 具有低功耗、精简而出色的全静态设计等特点,具备 MMU 存储器管理功能, 拥有独立的 16 KB 指令和 16 KB 数据缓存,在高性能和低功耗特性方面提供了可靠的性能。无线模块选用中兴 3G 模块MC8630, 数据速率为前向: 3.1 Mb/smax,反向: 1.8 Mb/s max 。 为了降低成本, 简化设计, 本方案选 bn 用中星微的 ZC0301 作为视频压缩编码芯片,Vimicro ZC0301 主要由系统控制、图像信号处理、次取样和水平扫描、 JPEG 编码器和 USB 设备控制五大功能模块组成。 CMO
5、S 图像传感器选择美光的 MI360 , 它采用 VGA 标准( 30 万像素) ,感光面积为 1/4 英寸, 有效像素 649H 489H, 采用低噪声技术,噪声等级达到 CCD 标准。 MI360 和 ZC0301 压缩编码芯片完成视频数据的采集、压缩和编码 。系统硬件结构如图 2 所示。 图 2 嵌入式监控系统硬件结构 3 系统软件结构 本嵌入式远程视频监控系统软件由摄像头驱动模块、图像采集模块、 H.264 图像压缩模块、嵌入式 Web 服务器组成。摄像头驱动模块实现摄像头在 Linux 操作系统下的正常工作, 并为应用程序提供接口。图像采集程序获取摄像头传送过来的图像信息并进行暂存。
6、 H.264 压缩模块完成对原始图像的编码处理。嵌入式 Web 服务器实现图像数据处理与网络传输。嵌入式 Web 服务器一般由 5 个主要模块组成: 嵌入式 HTTP 引擎、安全模块、应用程序接口、文件系统和配置模块 2。由于开发平台采用的嵌入式操作系统为 ARMLinux , 具有成熟的文件系统, 提供文件访问的接口, 可以直接使用文件系统提供的读写接口访问嵌入式 Web 资源文件, 不需要另外设计文件系统。嵌入式视频监控系统软件体系结构如图 3 所示。 图 3 嵌入式视频监控系统软件体系结构 3.1 摄像头驱动程序设计 图像的采集工作由图像传感器 MI360 和视频压缩芯片 ZC0301
7、完成, ZC0301 通过 USB 接口和 S3C2410 相连,因此驱动程序主要是对 Linux 下 USB 驱动程序 的开发, ZC0301 的驱动独立开发难度较大, 主要是既要考虑图像采集芯片的驱动, 还要考虑 USB 的驱动, 且 Vimicro 没有公布 ZC0301 的详细技术资料。 Linux 下 ZC0301 的驱动程序有开源代码, 根据本系统的开发平台进行修改、移植、重新编译内核等操作可以完成 ZC0301 的驱动程序。 3.2 图像采集模块设计 Video4linux(V4L) 是 Linux 的影像串流系统与嵌入式影像系统的基础,是 Linux Kernel 中支 持影像
8、设备的一组 APIs , 配合适当的视频采集卡与视频采集卡驱动程序,可以实现影像采集、 AM/FM 无线广播、影像 CODEC、视频切换等功能。 Video4linux 为二层式架构, 上层为 Video4linux 驱动程序本身, 下层架构则是影像设备的驱动程序。这里用到的是Video4linux 的上层驱动程序, 即 Video4linux 本身所提供给程序开发人员的 APIs 。 Video4linux 视频图像采集流程如图 4 所示。 图 4 Video4linux 视频图像采集流程图 3.3 H.264 图像压缩模块设计 H.264 是 ITU-T 视频编码专家组 (VCEG) 和
9、ISO/IEC 活动图像编码专家组 (MPEG) 的联合视频组( JVT) 开发的一个新的数字视频编码标准。在技术上, H.264 标准有很多优势,如统一的 VLC 符号编码,高精度、多模式的位移估计,基于 4 4 块的整数变换、分层的编码语法等。这些措施使得 H.264 算法具有很高的编码效率, 在相同的重建图像质量下能够比 H.263 降低 50%左右的码率。 H.264 的码流结构网络适应性强, 增加了差错恢复能力, 能够很好地适应 IP 和无线网 络。H.264 能以较低的数据速率传送基于 IP 的视频流, 在视频质量、压缩效率和数据包恢复丢失等方面,超越了现有的 MPEG-2、 MP
10、EG-4 和 H.26x 视频通信标准, 更适合窄带传输,是目前监控系统最为理想的信源压缩编码标准。 相对于有线网络而言 ,无线网络状况更不稳定 ,除去网络流量所造成的传输速率的波动外 , 设备的移动速度和所在位置也会严重地影响到传输速率。其次 , 无线信道的环境也要比有线信道恶劣得多,数据的误码率也要高许多 ,而高压缩的码流对传输错误非常敏感 , 还会造成错误向后面的图像扩散 , 因此无线 流媒体在信源和信道编码上需要很好的容错技术。错误恢复的工具随着视频压缩编码技术的提高在不断改进。旧的标准 (H.261、 H.263、 MPEG-2 的第二部分 )中 ,使用片和宏块组的划分、帧内编码宏块
11、、帧内编码片和帧内编码图像来防止错误的扩散。之后改进的标准 (H.263+, MPEG-4)中 ,使用多帧参考和数据分割技术来恢复错误。 H.264 标准在以前的基础上提出了三种关键技术来进行错误的恢复, 分别是参数集合、灵活的宏块次序 (FMO)和冗余片 (RS)。 FMO 是 H.264 的一大特色,可以是一帧中的宏块顺序分割,使分割后的片的尺寸小于无线网络的 MTU 尺寸,避免在网络层再进行一次数据分割,降低了数据传输的额外开销。 3.4 嵌入式 Web 服务器设计 本系统选用适合嵌入式系统的 Boa 服务器, 它是单任务 HTTP 服务器, 占用空间小, 另外支持动态 Web 技术的
12、CGI 技术, 源代码开放, 性能高。嵌入式 Boa 服务器移植到 Linux 系统中的网上相关资料很多, 不再赘述。 下面重点介绍应用程序接口 CGI 程序设计。 公共网关接口 CGI 是 HTTP 服务器与其他机器上的程序进行“ 交谈” 的一种工具, 其程序须运行 在网络服务器上。 CGI 是一个用于 Web 服务器与外部程序之间通信方式的标准, 使得外部程序能生成 HTML、图像或其他内容,而服务器处理的方式与那些非外部程序生成的 HTML、图像或其他内容的处理方式是相同的。使用 CGI 的原因在于它是一个定义良好并被广泛支持的标准, 没有 CGI 就不可能实现动态的 Web 页面, 除
13、非使用一些服务器中提供的特殊方法。 CGI 程序入口为 main () 函数, 函数首先执行初始化用到的变量, 然后根据提供的环境变量 Environmentv 获取当前访问用户的用户名, 判断用户的访 问权限, 然后根据 REQUESM 得到用户的请求方法。如果是 POST, 则根据 Contentl 获取用户请求内容并分析;如果是GET, 则根据 Querys 获取信息并分析请求内容, 最后根据用户权限做出相应的处理;如果是其他的请求方法, 则返回错误, 不支持该请求方法。流程图如图 5 所示。 图 5 CGI 程序处理流程 S3C2410 凭借其高性价比、丰富的接口以及对网络的强大支持
14、, 使其非常适合做网络视频监控系统的 Web 视频服务器的处理器。 H.264 算法具有很高的编码效率, 在相同的重建图像质量下, 能够比 H.263 降低 50%左右的码率。 H.264 的码流结构网络适应性强, 增加了差错恢复能力,能够很好地适应 IP 和无线网络。本系统支持动态 IP, 可以直接连入以太网 , 能够即插即看。通过局域网 (100 Mb/s 以太网 ) 内部测试 , 可以达到 25 帧 /秒 CIF 图像 (320 240) 要求 , 传输延迟 0.6 s 以内, 编码后的码率 150 Kbit/s , 由客户端软件解码恢复后的视频图像清晰、流畅、没有抖动现象, 能获得较好的视频质量