- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Linux嵌入式视频监控系统应用软件设计与实现
基于Linux嵌入式视频监控系统应用软件设计与实现
摘要 本文介绍了基于S3C2410硬件平台和嵌入式Linux的视频监控系统结构。阐述系统的软件结构、功能和控制流。对视频采集、压缩和显示的实现进行了分析,并对服务器端和客户端关键多线程的设计给出了实现方法。
关键词 嵌入式;视频监控;Framebuffer;线程
中图分类号 TP311文献标识码 A文章编号 1674-6708(2010)18-0132-02
0 引言
视频监控直观、准确、及时,并且信息内容丰富,所以被广泛应用于许多场合,在公共安全、突发事件处理等领域发挥重要作用。随着网络、通信、多媒体、嵌入式技术的发展,嵌入式视频监控系统以其体积小、重量轻、数字化、功耗低、价格低廉等特点,正日益受到人们的重视。
本文中提及的嵌入式视频监控系统基于S3C2410X硬件平台,和2.4内核以上的Linux操作系统。采用USB摄像头进行图像采集,对获取的数字化监测画面进行现场智能处理和判断。图像不必总是传回监控中心。而是一旦判断发现异常,则可立即通过网络向检测中心报警,并传回异常画面。
1 嵌入式视频监控系统组成
系统主要由硬件和软件两部分组成。结构如图1所示。
本系统硬件选用致远公司的MagicARM2410作为嵌入式网络视频服务器的开发平台,选用USB摄像头来进行视频采集。MagicARM2410以基于ARM920T内核的S3C2410X芯片为MPU。该芯片内部集成了指令/数据Cache、3路UART、并行I/O口,且通过以太网控制芯片扩展一个以太网接口,同时引出USB主口,用来接USB 摄像头。
软件系统由系统软件和应用软件组成。前者主要是指经过剪裁并移植的Linux,内含USB内核驱动程序、USB主机控制器驱动、USB摄像头驱动等;后者包括自行开发的服务器端软件和客户端软件。
其中,服务器端模块负责视频采集、压缩、检测、报警、传输、显示等,而客户端模块则负责视频接收、解压、显示、存储等。
2 软件功能概述
服务器端的视频采集功能利用Video4Linx(V4L)来实现;视频压缩采用JPEG压缩算法;视频检测则是将JPEG图像转换为三通道的图像。
视频显示则利用了Framebuffer技术。Framebuffer是从Linux内核2.2开始引入的一种驱动程序接口。它本身不具备任何运算数据的能力,就像是一个暂时存放水的水池。CPU将运算结果放到这个水池,水池再将结果流到显示器。中间不会对数据做处理。应用程序可以直接读写这个水池的内容。
本文中提及的监测系统视频传输通过有线网络进行,采用TCP协议。也可以采用UDP协议,只是需要对相应程序做出修改。
3 应用软件功能实现
3.1 服务器端
服务器端应用程序的核心是两个线程:视频采集线程和视频发送线程。
视频数据采集用于完成对视频的实时采集和压缩功能。采用Video4Linux(V4L)技术。V4L是 Linux内核中支持影像设备的一组APIs。应用程序通过标准的系统调用即可操纵视频设备。
应用程序main函数分别判断网络和视频缓冲区初始化是否完成,之后即调用start()函数开始下列工作:
1)创建线程
thread_create();
2)视频采集初始化
init_framebuffer(FB_FILE, fv, tempbuf); // 视频缓冲区初始化
……
open_video(V4L_FILE, fv, // 打开并初始化摄像头
DEFAULT_DEPTH,
DEFAULT_PALETTE,
WIDTH, HEIGHT);
3)线程1进行视频采集和压缩
while(1){
……
rgb_to_framebuffer(fv, WIDTH, HEIGHT, // 视频图像存入缓冲区
XOFFSET, YOFFSET, image);
……
put_image_jpeg(fptr_jpg, (char *)image, // 图像压缩
WIDTH, HEIGHT,
DEFAULT_QUALITY,
DEFAULT_PALETTE);
}
4)线程2进行视频发送
while(1){
……
memset(sendbuff, 0, FILE_LENGTH); // 开辟发送缓冲区
num = read(file, sendbuff, FILE_LENGTH); // 读取图像文件大小
……
ret = send(temp_socke
您可能关注的文档
最近下载
- Panasonic松下LUMIX G97 相机拍摄更为优质的照片和视频产品说明书用户手册.pdf
- 2023-2024学年高中信息技术必修一沪科版(2019)第三单元项目五《 描述洗衣机的洗衣流程——了解算法及其基本控制结构》说课稿.docx VIP
- 2023-2024学年沪科版(2019)高中信息技术必修一第三单元项目五《描述洗衣机的洗衣流程——了解算法及其基本控制结构》说课稿.docx VIP
- 2023-2024学年沪科版(2019)高中信息技术必修一第三单元项目五《描述洗衣机的洗衣流程——了解算法及其基本控制结构》说课稿.docx VIP
- 项目五 描述洗衣机的洗衣流程了解算法及其基本控制结构.ppt VIP
- 2023-2024学年高中信息技术必修一沪科版(2019)第三单元项目五《 描述洗衣机的洗衣流程——了解算法及其基本控制结构》教学设计.docx VIP
- 项目五 描述洗衣机的洗衣流程了解算法及其基本控制结构 教学设计.doc VIP
- 《项目五 第1课时-从洗衣流程认识算法》精品课件.pptx VIP
- 军事职业教育条例解读.pptx
- 项目五 描述洗衣流程认识算法——了解算法及基本控制结构 课件.pptx VIP
原创力文档


文档评论(0)