嵌胧紿264网络视频监控系统.pdf
《嵌胧紿264网络视频监控系统.pdf》由会员分享,可在线阅读,更多相关《嵌胧紿264网络视频监控系统.pdf(42页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、嵌入式 H.264 网络视频监控系统设计与研究 题目题目 嵌入式 H.264 网络视频监控系统设计与研究 摘 要 H.264是ITU-T和ISO/IEC联合推出的最新视频编码国际标准,较之以往的视频编码标准有了明显的进步。由于其良好的压缩效率和网络自适应性,H.264将在可视电话、远程监控、移动流媒体、视频压缩存储等领域得到广泛的应用。基于ARM的嵌入式视频监控系统,具有体积小、成本低、稳定性高、实时性好、重量轻,便携等优点,具有很强的实用性价值,可广泛应用于安全监控系统、视频会议、远程同步教学等领域。研究在嵌入式开发平台上实现H.264视频监控具有重要的现实意义。本文设计并实现了一个嵌入式
2、H.264 视频监控系统。通过对嵌入式、数字图像处理等技术的研究,提出了基于utu2440开发平台的视频编码系统的设计与优化方案。论文的主要工作从以下几个方面展开:一是分析了 H.264 主要功能模块和核心算法复杂度,对计算复杂度高、费时多的分子像素运动进行了优化;二是充分利用系统资源配置和 ARM 处理器特性,结合 H.264 视频编码的运算量大和存储访问任务繁重的特点对 ARM 平台进行了优化;三是编写了视频采集应用程序,结合 X264 源码,完成了视频采集并压缩为 H.264/AVC 格式的视频数据的功能,实现了视频采集压缩系统的设计与优化,利用 UDP 协议完成了压缩视频流的发送;最后
3、远程监控端采用DirectShow 技术实现了视频解码播放。测试结果表明本系统具有图像压缩率高、质量好(QCIF 显示模式)的优点,在utu2440 开发板上视频延迟时间小,基本达到监控目的。关键词:关键词:嵌入式;H.264;UDP;DirectShow;优化 第一章 绪论 1 第二章 嵌入式 H.264 视频监控系统总体方案设计 2.1 设计总体方案 本课题设计的嵌入式视频监控系统,采用迄今为止最先进的 H.264 视频压缩标准压缩视频文件,为基于嵌入式的多媒体应用搭建一个应用的基础平台。基于此设计思想,提出系统的总体设计框架如图 2.1 所示。软件应用软件:视频采集、压缩、Directs
4、how解码播放操作系统:嵌入式Linux内核、根文件系统设备驱动程序硬件USB HOSTRS232JTAGLAN 摄像头 图 2.1 系统总体框图 服务器端以 RISC 通用处理器为核心,由 SDRAM、FLASH 等存储器件和各种通信接口构成嵌入式硬件平台。通过 USBHOST 接口接入摄像头外设,以捕获视频原始数据。同时设有 RS232、JTAG、LAN 等用于开发调试的接口。选用免费、开源的Linux操作系统以实现基本控制和网络连接功能;采用 H.264 对采集的视频进行压缩编码,采用 UDP 协议实现视频的网络传输。客户端采用 H.264 解码后用 Directshow技术播放接收到的
5、视频。2.2 硬件平台的选择 嵌入式处理器是嵌入式系统的核心部件。嵌入式处理器与通用处理器的最大不同点在于它把通用计算机中许多由板卡完成的任务集成在芯片内部,从而有利于嵌入式系统设计趋于小型化,并且具有高效率、高可靠性等特征。现今市面上有 1000 多种嵌入式处理器芯片,其中使用最广泛的有 ARM、MIPS、PowerPC、MC68000 等。目前,采用 ARM 技术知识产权(IP)核的微处理器,即我们通常所说的 ARM9微处理器,已遍及工业控制、通信系统、网络系统、消费类电子产品、无线系统等各类产品市场,基于 ARM 技术的微处理器应用约占据了 32 位 RISC 微处理器 75%以上的市场
6、嵌入式 H.264 网络视频监控系统设计与研究 份额,ARM 技术正在逐步渗入到我们生活的各个方面10。ARM 所提供的 16/32 位嵌入式 RISC 内核有以下几个系列:ARM7,ARM9,ARM9E,ARM10,SecurCore,StrongARM 和 Intel XScale。其中,ARM7,ARM9,ARM9E 和 ARM10 为 4 个通用处理器系列,每个系列提供一套相对独特的性能来满足不同领域的需求。例如 SecurCore 系列专门为安全要求较高的应用而设计。S3C2440X11是韩国三星公司推出的一款基于ARM920T内核的16/32位RISC嵌入式微处理器。以手持设备为主
7、,其特点有12:功耗低、处理速度快,同时增加了丰富的外围资源,这对系统开发非常有利。作为该芯片的CPU内核,16/32位ARM920T RISC微处理器采用0.13mCMOS 标准单元和存储单元复合体。它功耗极小,简单、稳定的设计非常适合对电源要求较高的产品上。ARM920T核由ARM9TDM1、存储管理单元(MMU)和高速缓存三部分组成。其中,MMU可以管理虚拟内存,高速缓存由独立的16KB指令Cache和16KB数据Cache组成。该芯片集成了支持 TFT 的 LCD 控制器、NAND FLASH控制器、SDRAM控制器、3个通道的UART等等控制器和丰富的外部接口。在时钟方面其也有突出的
8、特点,该芯片集成了一个具有日历功能的RTC(实时控制)和具有PLL(MPLL和UPLL)的芯片时钟发生器。CPU 最高主频达533MHz(标称频率为400MHz)。该工作频率能够使处理器轻松运行WinCE、Linux等操作系统以及进行较为复杂的数据处理。utu2440开发板使用三星S3C2440微处理器,其它资源:10/100MHz 自适应以太网控制器,用于网络通信;1通道5线制串口、2通道3线制串口,用于下载程序和打印输出信息;1通道USB1.1 主机接口,可接usb hub,扩充多个usb主口,1通道USB1.1设备接口,用于接USB摄像头,及挂载临时程序;SD/MMC卡接口,可用来挂载程
9、序;标准20pin JTAG调试接口,主要用来下载引导程序U-BOOT;标准配置64MBytes Nand-Flash 用于存放启动代码、内核、根文件系统,服务端程序等;标准配置64MBtyes SDRAM 存储程序,启动代码启动后,由UBOOT的前4K代码负责把UBOOT从nandflah复制到SDRAM中,然后在SDRAM中执行整个系统的启动;支持的操作系统:WINCE/Linux。鉴于utu2440的以上特性,以及成本低的特点。非常适合本系统的开发,因此选用utu2440开发板作为本系统的硬件平台。开发板实物如图2.2。第一章 绪论 3 图 2.2 utu2440 开发板实物图 2.3
10、软件平台 2.3.1 视频采集方案 本节介绍在 utu2440 开发平台上基于 VideoforLinux 的实时视频采集方案,USB摄像头因其价格低廉、性能良好而广泛应用于可视电话、视频聊天、视频监控等领域,同时以其灵活、方便的特性,易于集成到嵌入式系统中。摄像头由主控芯片和传感芯片组成。其中,主控芯片负责图像采集、压缩以及和主机的通信,传感芯片用于感应光信号转换为模拟或数字视频电信号。对于主控芯片为 OV511、zc030 x 系列的主流 USB 摄像头,Linux 内核可提供驱动程序支持。采用OV511 芯片的摄像头采集的图像为 RGB 格式,数据量较大不利于实时采集和处理;采用 zc0
11、30 x主控芯片的摄像头支持 JPEG 格式和 4:2:0 采样的 YUV 原始视频数据输出,数据量小,可直接作为 H.264 等视频压缩编码标准的原始视频数据源,避免了对图像的重采样和色彩空间的变换等复杂的数字运算处理,非常适合于嵌入式的实时视频采集应用,已成为国内市场的主流。系统选择市场上常见的中星微 USB 摄像头,其采用的主控芯片为 zc0301,图像传感芯片为 HV7131R,图像象素为 130 万,最大分辨率为 640480。驱动程序选用gspca/spcasxx,所用版本为 gspcavl-20080605。嵌入式 H.264 网络视频监控系统设计与研究 2.3.2 视频编码方案
12、 H.264 标准是 ITU-T 的 VCEG(视频编码专家组)和 ISO/IEC 的 MPEG(运动图像专家组)的联合视频组(JVT,Joint Video Team)开发的标准,也称为 MPEG-4 AVC,它作为MPEG-4 Part10,是高级视频编码。H.264 比 H.263 节约 50%左右的码率,所以它有更好的 IP、更高的压缩比和无线网络信道的适应性。H.264 具有较强的抗误码特性,可适应丢包率高、干扰严重的信道中的视频传输。H.264 支持不同网络资源下的分级编码传输,从而获得平稳的图像质量。在数字视频通信和存储领域 H.264 得到越来越广泛的应用。鉴于 H.264 的
13、以上优点,我们采用 H264 实现视频的编解码。H.264 标准包含了三大开源编码器,它们分别是 JM、X264、T26413。JM:特点:实现了H.264标准规定的所有特性,但其程序结构冗长,在引入各种新特性以提高编码性能时,却忽视了编码复杂度,其编码复杂度极高,实用性不强。X264:特点:注重实用。和JM相比,在不明显降低编码性能的前提下,努力降低编码的计算复杂度,故X264摈弃了JM中一些对编码效率贡献微小但计算复杂度极高的特性。T264:特点:和X264的出发点相似,并吸收了JM、X264、XVID的部分优点。为了选择更佳的编码器,我们对上述三大开源编码器做了如下测试:一:测试环境 C
14、PU:赛扬 2.13G RAM:1G DDRII OS:Windows XP 编码器版本:JM:JM86。选用不同分辨率 qcif 和 cif,所有测试序列帧率都采用 30fps。X264:x264-060330 版本。T264:0.14 版本。编码选项:由于 X264 和 T264 是基于基本档次的,所以 JM 采用 baseline profile。T264 采用fast mode。量化步长依次选择为:24、28、32、36。二:测试的可行性 由于我们测试的是编码器本身综合编码效率的优劣,因此在Intel处理器Windows操作系统上的测试结果同样适用于ARM处理器Linux操作系统中,即
15、:如果在Windows xp上编码器的编码效率从高到低的测试结果依次为:X264T264JM86,则在utu2440开发板中的测试结果同样有X264编码效率优于T264及T264优于JM86。而在Windows xp 上测试速度更快、更方便,所以选用在Windows xp 上测试,以节约开发时间。当编码器选用JM86,测试输入文件采用foreman_qcif.yuv,量化步长QP=24时,第一章 绪论 5 测试输出如图2.3、图2.4。其它测试截图不一一列出。图2.3 JM86测试输出截图 嵌入式 H.264 网络视频监控系统设计与研究 图2.4 JM86测试输出截图 三:实验结果分析 1)P
16、SNR:相同输入格式下三个编码器的表现相差很小。不同输入格式下 JM86的 y、u、v差异稍大,X264 和 T264 差异很小,尤其是 y分量差异很小,最大差异为 2.07db。2)码率:Cif 序列的码率是 qcif 序列的三倍多,qp 越大倍数减少。3)编码速度:在同一视频序列下 x264 是 jm86 的 90300 多倍,t264 是 x264 的1.6 倍左右,对同一个编码器 qcif编码速度是 cif 的 4 倍左右,而在 t264 下,其倍数达 4.5 倍左右,说明 t264 对低分辨率序列的编码比较有效。4)分辨率提高 n 倍,为了得到相近的编码质量,输出码率和所用的编码时间
17、也要增加近 n倍。四、实验结论 1)X264 X264 和 JM86 相比,其编码性能和 JM86 相当或更好的情况下,其编码速度可以提高 90300 倍。这体现了 X264 编码非常有效。2)T264 T264 和 JM86 相比,编码速度有了更大的提高,但其编码性能下降很大,除了第一章 绪论 7 传输带宽比较大或延时要求极其苛刻等这些特殊场合,T264(fast mode)的意义不大。3)T264high T264high在编码性能不如 X264,而且编码速度也不如 X264。总之,JM86 编码效率不如 T264,T264 的编码效率不如 X264。基于以上结论本文采用实效性更强的 X2
18、64 作为编码器。2.3.3 视频传输方案 视频传输可以选择 TCP 与 UDP。TCP(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的运输层通信协议,通常由 IETF 的 RFC 793 说明。在简化的计算机网络 OSI 模型中,它完成运输层所指定的功能。在因特网协议族中,TCP 层是位于 IP 层之上,应用层之下的中间层。不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是 IP 层不提供这样的流机制,而是提供不可靠的包交换。应用层向 TCP 层发送用于网间传输的、用 8 位字节表示的数据流,然后 TCP 把数据流分割成适当长度的报
19、文段。之后 TCP 把结果包传给 IP 层,由它来通过网络将包传送给接收端实体的 TCP 层。TCP 为了保证不发生丢包,就给每个字节一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的字节发回一个相应的确认(ACK);假如发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据将会被重传。TCP 用一个校验和函数来检验数据是否有错误;在发送和接收时都要计算校验和。TCP 协议一般不直接用来传送视频数据本身,但是对于视频传输中传输中的控制信息而言,TCP 是最合适的。UDP(User Datagram Protocol)是无连接的用户数据报协议,它由
20、RFC768 标准定义。是 OSI 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。UDP 协议基本上是 IP 协议与上层协议的接口。UDP 协议适用端口分别运行在同一台设备上的多个应用程序。与 TCP 类似,UDP 为每个来自上层的数据块加上一个 UDP 报头,形成 UDP 消息段,与 TCP 相比,UDP 的报头要简单得多,其中校验和是用于检查传输中是否出现错误。与 TCP 不同,UDP 并不提供对 IP 协议的可靠机制、流控制以及错误恢复功能等。由于 UDP 比较简单,UDP 头包含很少的字节,比 TCP 负载消耗少。UDP 适用于不需要 TCP 可靠机制的情形,
21、比如,当高层协议或应用程序提供错误和流控制功能的时候。UDP 是传输层协议,服务于很多知名应用层协议,包括网络文件系统(NFS)、简单网络管理协议(SNMP)、域名系统(DNS)以及简单文件传输系统(TFTP)。对视频数据的传输而言(对时延敏感,但可以容忍一定的错误),UDP 比 TCP更为合适。尽管 TCP 是一个很成功的协议,但是无法满足视频传输的需要。TCP 的嵌入式 H.264 网络视频监控系统设计与研究 大量确认应答使视频数据不得不因为等待应答而放弃,造成不必要的延时和更大范围的数据丢失。相比较而言,UDP 只要网络流量足够,视频数据就可以源源不断的到达接收者。因此,在 IP 网络上
22、传送视频数据,往往采用 UDP 协议,而不是 TCP 协议14。本系统我们选用 UDP 作为传输协议。2.3.4 视频播放方案 网络上经过 H.264 压缩的视频流用当前主流播放器播放不了,必须要自主设计一个播放器。本设计中我们选用 DirectShow 技术设计一个播放器。DirectShow 技术是 DirectX 推出的一个多媒体应用程序开发包,DirectShow 支持多媒体流的捕捉和回放。利用 DirectShow,可以轻松地从采集卡上捕获数据,然后进行处理并存储到本地文件中。它支持各种媒体格式,包括 Asf、Mpeg、Avi、Dv、Mp3、Wave、H.264 等,轻松地实现多媒体
23、数据的回放。另外,DirectShow 直接支持 DVD的播放,数字摄像机的数据交换,视频的非线性编辑。更重要的是,DirectShow 提供了一种开放式的开发环境,可以根据不同需要定制自己的组件。实际上,MediaPlayer就是在 DirectShow 基础上搭建起来的。功能非常的强大。一、DirectX 简介 DirectX 是微软公司提供的一套底层应用程序编程接口,主要在游戏和其他高性能多媒体上应用。这些接口包括对二维和三维图形,音乐和声效,输入设备以及网络游戏等的支持。目前最高版本是 DirectX 9.015。二、DirectShow 的系统组成 DirectShow 技术建立在
24、DirectSound 和 DirectDraw 之上,它利用 DirectDraw 控制显卡来显示视频,利用 DirectSound 控制声卡来播放声音。DirectShow 可提供高质量的多媒体流的捕获和回放功能;支持的媒体格式很多:包括 MPEG,MP3,ASF,AVI和 WAV 等声音文件;可以从视频采集卡上捕获媒体数据流;还可以自动检测并使用视频和音频加速硬件处理速度。因此,可以充分发挥 DirectShow 的媒体功能,提高运行速度,简化媒体间的格式转换、媒体播放和媒体捕获等工作。同时,它还具有很大的灵活性和可扩展性,可以由用户创建组件,然后将这个组件加入 DirectShow 结
25、构中以支持需要的格式或特殊效果16。DirectShow 所支持的软硬件以及应用程序与DirectShow 组件之间的关系如图 2.5 所示。第一章 绪论 9 图 2.5 DirectShow 系统框图 本系统利用 DirectShow 来播放网络传输过来的压缩 H.264 视频流。2.4 本章小结 本章根据嵌入式视频监控的特点提出了系统的总体设计方案,对构成该系统的各个模块进行了比较选择,采用迄今为止最先进的 H.264 视频压缩标准压缩视频文件,以此为基础构建一个网络视频监控平台。从而达到控制成本低,监控效果好的目的。MEMC帧内预测选择帧内预测滤波T-1Q-1TQ重排序熵编码nF当前参考
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌胧紿 264 网络 视频 监控 系统
限制150内