收藏 分销(赏)

基于ARM的视频采集与编码系统的设计样本.doc

上传人:精*** 文档编号:4790188 上传时间:2024-10-12 格式:DOC 页数:12 大小:1.20MB
下载 相关 举报
基于ARM的视频采集与编码系统的设计样本.doc_第1页
第1页 / 共12页
基于ARM的视频采集与编码系统的设计样本.doc_第2页
第2页 / 共12页
基于ARM的视频采集与编码系统的设计样本.doc_第3页
第3页 / 共12页
基于ARM的视频采集与编码系统的设计样本.doc_第4页
第4页 / 共12页
基于ARM的视频采集与编码系统的设计样本.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

1、资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。基于ARM11的视频采集与编码系统的设计摘 要: 基于嵌入式技术的无线视频监控以其灵活性、 高集成性、 便捷性等诸多优点必将取代传统的有线视频监控。针对当前视频监控的实际需求, 结合嵌入式技术、 图像处理技术, 设计并实现了一种可靠性高、 成本低的嵌入式视频采集及编码系统。它是视频监控的前端, 是无线视频监控系统的一个子系统。系统选用S3C6410微处理器作为核心板的控制器, 采用USB接口的摄像头进行采集, 利用S3C6410的硬件编解码模块进行H.264编码。根据系统的功能要求, 开发了zc301摄像头和MFC的设备驱动程序,

2、并采用内存映射方式和双缓冲思想编写了基于V4L的视频采集程序。探讨了H.264的编码特性和码流结构, 利用MFC驱动中的API函数, 开发了基于H.264算法的视频编码程序。测试表明, 设计的系统视频采集效率高、 图像连续性好、 运行稳定。关键词: 嵌入式系统; ARM11; S3C6410; 视频采集;视频编码; H.264ABSTRACT: In the future, Wireless video monitoring system based on embedded technology, with many advantages such as flexibility, integr

3、ation, convenience and so on, will replace existing wired video monitoring system inevitably. Aiming at actual demand of present video monitoring, this paper designs and realizes a reliable and cheap embedded video capturing and compression system, with the combination of embedded technology and ima

4、ge processing technology. This system is the front end of video monitoring and a subsystem of wireless video monitoring system. This system chooses S3C6410 as the kernel boards controller uses the camera with USB interface to capture pictures and encodes the video data using the codec of S3C6410. Ac

5、cording to functional requirements of the system, device drivers of MFC and zc301 camera are developed, and video capturing application based on V4L using Memory Mapping and the idea of the double buffer are also developed. After a brief study on the feature and stream structure of H.264, video enco

6、ding application based on H.264 with the MFC drivers API is completed. The test shows that this system has a high efficiency to capture video data, has good continuity for pictures and can run stably.KEY WORD: Embedded system; ARM11; S3C6410; Video capturing; Video encoding; H.264引 言视频具有表示客观事物直观、 生动

7、、 形象, 信息丰富等优点, 它在各行各业的应用日益受到人们的关注。传统的视频监控系统主要是模拟图像监控系统和基于有线传输的数字监控系统。虽然模拟图像监控系统1能够保证图像清晰、 不失帧, 可是传输距离小, 布线工程量大, 需要大量存储介质, 极大地浪费了资金。数字监控系统多采用各种视频采集卡实现, 灵活性不够, 成本高, 且同样存在布线上的缺陷。在视频监控领域, 由于受传输带宽的限制, 如何对视频数据进行高效压缩, 从而便于信息稳定高质量传输, 以及如何设计系统, 保证系统的体积更小, 成本、 功耗更低等各种棘手问题摆在了当前技术人员的面前。如今随着电子信息技术, 多媒体技术及网络技术的快速

8、发展, 嵌入式无线视频监控技术应运而生且飞速发展。视频监控系统正在向集成化、 数字化和网络化方向发展2,3。本文提出了一种基于ARM11的视频采集与编码系统, 充分利用大规模集成电路和先进高效编码标准, 解决了传统视频监控系统成本高, 体积大, 布线麻烦等问题。这将改变当前的视频监控, 在家庭安防、 交通监控、 远程教育、 森林防火监控、 远程医疗等众多领域产生巨大影响。1.系统的整体硬件框图介绍基于ARM11的视频采集与编码系统的硬件部分主要由主控制板模块和摄像头模块组成。其中主控制板选择以ARM1176JZF-S为内核的S3C6410微处理器作为控制器, S3C6410接口丰富, 经过US

9、B接口连接摄像头, 串口与PC机相连。系统整体框图如图1所示。USB后续研究( 传输) SDRAMNAND FLASHJTAG电源及复位电路摄像头( zc301) CPU单元S3C6410图1 系统整体框图 图2 嵌入式核心控制板嵌入式系统硬件部分主要包括: 微处理器及存储电路模块, 电源、 时钟和复位电路模块, 外围接口电路模块等4。本系统由S3C6410处理器控制接收摄像头的视频信号, 利用S3C6410内部集成的多媒体编解码器( MFC) 进行基于H.264的压缩编码, 实现视频数据的快速采集和高效压缩。以后将进行传输方面的研究。本系统中NAND FLASH用于存储各种固化程序, SDR

10、AM用于系统运行时程序的存取, JTAG用于程序的下载, 串口用于系统打印信息的输出及程序的调试。其中基于S3C6410微处理器的核心控制板如图2所示。2.系统的硬件模块介绍2.1 核心控制器 本系统实现的主要功能是视频的采集与编码。其中系统的主控制器是具有ARM11内核的S3C6410微处理器, 它控制摄像头进行视频采集, 并对其进行H.264的压缩编码。S3C6410是韩国三星电子基于ARM1176JZF-S内核构建的高性能多媒体应用处理器5, 它不但具有强大的硬件编解码单元, 完善的外设, 而且拥有高达667MHZ的运行频率。图像处理CMOS时钟驱动器时间发生器相关双采样自动增益控制A/

11、D转换DSPUSB输出图像压缩S3C6410内部结构复杂, 芯片内部集成了以下资源: 1个LCD控制器( 支持TFT-24bit真彩色带有触摸屏的液晶显示屏), SDRAM控制器, NAND Flash控制器, 支持4通道UART口, 32通道DMA, 4通道具有PWM功能的计数器和1个内部时钟, 全功能的SPI, IIC总线接口, IIS数字音频总线接口, 看门狗计数器, USB OTG( 最高480Mbps) , USB HOST, 3通道MMC/SD控制器等。其内部结构如图3所示。 图3 ARM11内部结构图 图4 USB数字摄像头的结构框图2.2 数字摄像头本文选用中星微的zc301数

12、字摄像头, 其工作原理为: 景物经过镜头生成光学图像投射到CMOS图像传感器表面上, 转为电信号, 经过A/D( 模数) 转换后变为数字信号, 再送到DSP芯片中加工处理, 将其转化为特定的图像格式如JPEG, 再经过USB接口传输到处理器中6。其结构框图如图4所示。该摄像头输出的是JPEG流, 最大分辨率能达到640480, 支持的最小分辨率为160120。实验表明当图片大小设置成640480, 调色板设置成YUV420P时, 经摄像头内部DSP处理后, 输出JPEG流, 图像数据量大为减少, 加快了USB输出到处理器的速度。在主控制器中, 摄像头驱动程序会对输出的JPEG流进行解码。3.系

13、统的软件平台嵌入式操作系统是嵌入式系统重要的组成部分, 它为应用程序的开发提供了一个软件平台。实现嵌入式系统功能的第一步就是进行系统移植, 其中包括操作系统内核、 文件系统和各设备驱动程序的移植。3.1 Linux内核的移植本文选用三星公司的s3c-linux-2.6.21这个Linux操作系统。由于嵌入式系统的硬件资源有限, 因此需要针对具体的硬件平台和要实现的特定功能, 对内核各种功能模块进行裁剪。首先, 配置内核。执行make menuconfig命令,其中在Loadable module support中选择Enable loadable module support使内核支持模块动态

14、加载; 在System Type中添加对系统平台的支持。对于不同的体系结构, 显示不同的提示信息。ARM体系结构显示”ARM system type”; 在Device Drivers中选择所需要的设备驱动程序; 在Memory technology device子菜单中添加对MTD设备的支持; 在Multimedia Devices子菜单中添加对摄像头的支持。其它选项能够直接使用其缺省值, 配置完成后保存退出。然后建立依赖关系, 执行make dep命令。最后创立镜像文件, 执行make zImage命令。3.2 Linux 文件系统移植嵌入式系统一般采用Flash作为存储介质, Flash

15、具有独特的物理特性, 必须使用专门的嵌入式文件系统。本文选用cramfs作为根文件系统, 它是一种压缩的、 极为简单的只读文件系统。要支持写操作, 需要添加yaffs文件系统。将已经做好的cramfs文件系统, 经过USB下载到开发板上后, 挂载yaffs文件系统。其命令如下: mount -t yaffs /dev/mtdblock/3 /tmp/flashdisk/; cd flashdisk。3.3 Linux设备驱动的编写及移植驱动程序屏蔽了硬件实现上的细节, 向应用程序提供访问硬件设备的接口, 应用程序能够像操作普通文件一样对硬件设备进行操作。本文中主要用到摄像头和MFC这两个设备,

16、 其驱动程序的开发是本设计中的一个关键部分。设备驱动程序一般完成以下功能: 对设备初始化和释放, 把数据从内核传送到硬件和从硬件读取数据, 检测和处理设备出现的错误等。由于Linux的开源性, 可从网上获得万能驱动源码, 进行修改编译进内核后即可使用。USB摄像头驱动程序的开发流程如下: ( 1) 模块初始化 建立设备文件, 注册设备。由子函数: proc_spca50x_create ();usb_register (&spca5xx_driver) 实现。( 2) 模块卸载 包括注销USB设备驱动, 消除设备文件。主要由子函数: usb_deregister (&spca5xx_drive

17、r);proc_spca50x_destroy ()实现; ( 3) 上层软件接口模块 经过file_operations数据结构, 依据V4L标准, 实现设备的关键系统调用, 像open, close, read, mmap和最主要的ioctl功能。由这几个子函数实现: spca5xx_open(struct video_device *vdev, int flags); 完成设备的打开和初始化, 并初始化解码器模块。spca5xx_close( struct video_device *vdev); 完成设备的关闭。spca5xx_read(struct video_device *dev

18、, char * buf, unsigned long count,int noblock); 完成数据的读取, 其主要的工作就是将数据由内核空间传送到用户空间。spca5xx_mmap(struct video_device *dev,const char *adr, unsigned long size); 实现将设备文件映射到用户进程的地址空间, 其关键函数是remap_page_range()。spca5xx_ioctl (struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg); 实现文件

19、信息的获取。( 4) 数据传输模块 实现同步快速传递数据, 并经过spcadecode.c上的软件解码模块实现JPEG图像信息的解码。驱动编写移植完成后, 进行测图5 摄像头抓图测试 试。效果如图5所示。图 6 选择Boot options 图7 修改Default kernel command string对于硬件编解码模块7( MFC) , 根据需要修改MFC的驱动源码, 然后编译进内核。以下是MFC模块驱动移植的步骤: 1、 配置Boot option8。有些设备是需要预留存储空间的, 这就需要修改内核源代码中include/asm-arm/arch-s3c2410目录下的reserve

20、d_mem.h文件, 即保留#define CONFIG_RESERVED_MEM_MFC。然后编译内核, 执行命令make smdk6410mtd_defconfig; make menuconfig; 进行内核配置, 具体如图6, 图7所示。然后选择Default kernel command string, 如果显示”mem=128M”, 则把它去掉。2、 编译MFC驱动。首先修改Makefile, 修改内核源代码的位置, 即将KERNEL_DIR和TOPDIR改为/home /s3c-linux-2.6.24。编译之后生成文件s3c_mfc.ko, 下载到开发板上后, 修改执行权限,

21、再经过命令insmod s3c_mfc.ko动态插入内存中, 即实现了驱动的加载。 4.系统应用程序的开发整个嵌入式视频采集与编码系统由软件和硬件两部分组成。硬件方面, 以S3C6410处理器为核心经过USB接口接收摄像头数据, 经过MFC模块进行编码; 软件方面, 由U-boot引导程序, Linux内核和设备驱动程序形成基本的嵌入式运行环境, 应用层负责视频采集和编码。总体框图如图8所示。软件应用软件: 视频采集、 压缩嵌入式操作系统linux-2.6.21设备驱动程序Bootloader硬件S3C6410USBMFC处理上一帧循环采集同步等待采集一帧采集下一帧图8 系统总体框图 图9 双

22、缓冲示意图4.1 视频采集程序的开发视频采集程序采用内存映射方式代替直接读取。read()经过内核缓冲区来读取数据。而mmap()经过把设备文件映射到内存中, 绕过了内核缓冲区, 进程能够像访问普通内存一样对文件进行访问。同时还采用了双缓冲的思想设计, 加快了视频读取的速度, 如图9所示。等待采集完成YNNYYNNYYNYNH.264编码, 处理前一帧图像获取信息成功? 输出显示并修改基本信息关闭视频设备关闭文件程序开始打开设备成功? 是否成功? 采集图像成功? 帧计数0? 采集下一帧成功? YNYNNY程序结束是否成功MFC编码信息初始化是否成功接收编码数据编码( H.264) 后续处理(

23、传输) 重设配置参数( 选择输出流格式) 错误处理程序开始打开MFC设备是否成功设定编码参数( 帧率、 比特率等) 程序结束 图10 视频采集流程图 图11 MFC应用程序流程图视频采集之前先要获得设备的属性信息, 并对采集窗口、 调色板等进行设置, 然后才能进行视频采集。具体流程如下: 打开视频设备; 读取设备信息; 更改设备当前设置; 进行视频采集; 对视频进行处理; 关闭视频设备。其流程图如图10所示。4.2 视频编码程序的开发图12 YUV流播放效果图 图13 H.264流播放效果图本文采用S3C6410内部集成的多媒体编解码模块MFC进行H.264的视频压缩编码。MFC模块9具有高性

24、能的视频编解码功能, 支持MPEG4、 H.263、 H.264的编解码, 并支持VC1解码, 性能能够达到全双工30fps640480同时编解码和半双工30fps720480或25fps720576编解码10。MFC应用程序的流程图如图11所示。采集出的YUV流播放效果如图12所示。编码的H.264流播放的效果如图13所示。5.系统调试调试是系统开发中必不可少的一个过程, 而且嵌入式系统的硬件和软件两部分应该分开调试。其中嵌入式软件的调试11,12与通用软件的调试方式有很大的差别,因为程序的开发平台和目标平台是分开的。本文采用的是先在宿主机上进行应用程序的调试, 成功后再下载到目标机上进行验

25、证。实验证明, 该方案简单可行。程序调试过程中出现了设备打开出错, 采集到的数据没播放效果, 采集的速度慢13等问题, 经过认真思考和多次试验, 这些都很好地得到了解决, 最终保证了系统的正常运行。6.结论经过本次毕业设计, 学习并掌握了基于Linux的嵌入式系统开发的流程, 了解视频监控的工作原理和需求, 搭建好了嵌入式软硬件开发平台, 开发出了基于V4L的视频采集和基于H.264的视频编码程序, 最终设计出了视频监控的前端, 实现了视频数据的快速采集和高效编码, 这为后续完成整个无线视频监控系统奠定基础。测试表明, 设计的系统视频采集效率高、 图像连续性好、 运行稳定。在后续研究中, 将进

26、一步从摄像头接口电路和核心控制板电路方面对该系统提出改进和完善。参考文献1 郭卫华. 模拟视频监控系统之过去、 现在和将来J. 中国安防, , Z1: 54-57.2 杨帆, 彭宏伟, 赵党军, 李国平. 基于微波技术的森林防火监控系统J. 华中科技大学学报(自然科学版), , 35(12): 14-163 王亚杰. 嵌入式网络视频监控系统设计D. 武汉: 武汉理工大学, , 44 孙江波. 基于嵌入式Linux的视频监控系统设计J. 武汉工业学院学报, , 25(3): 31-33.5 徐赫. 基于ARM嵌入式视频采集的研究D. 武汉: 武汉理工大学, , 5.6 方芳. 基于ARM的嵌入式

27、视频监控系统的研究D. 北京: 北京邮电大学, , 5.7 Richardon IEG.H.264 and MPEG-4 video compression video coding for next generation multimediaM. Wiley Press Publishing, : 233-246.8 黄恒强. 基于ARM和Linux的嵌入式远程视频监控系统设计D. 南京: 南京理工大学, , 6.9 Kostas Pentikousis, Jarno Pinola, Esa Piri and Frerk Fitzek. A Measurement Study of Spee

28、x VoIP and H.264/AVC Video over IEEE 802.16d and IEEE 802.11gJ. Computers and Communications. IEEE Symposium on, , 6(9): 19-2410 Yaser Pourmohammadi Fallah, Panos Nasiopoulos and Hussein Alnuweiri.Efficient Transmission of H.264 Video over Multirate IEEE 802.11e WLANsJ.EURASIP Journal on Wireless Co

29、mmunications and Networking, : 1411 Wang H, Kwong S, and KoK C W. An Efficient mode decision algorithm for H.264/AVC encoding optimization J. IEEE Transactions on Multimedia, , 4(9): 882-888.12 胡杰. 基于ARM的嵌入式视频监控终端的研究D. 武汉: 武汉理工大学, , 5.13 Yajnanarayana V, Subramaniyan R, S chuette M. Techniques to improve motion compensation performance of H264 video decoder using a vector processorJ. Communications and Information Technologies, , 10: 1082 1087.

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服