ARM11硬件编解码例程,实现视频的采集压缩以及传输显示
目录
ARM11硬件编解码例程,实现视频的采集压缩以及传输显示
摘要:介绍基于华恒科技HHS3C6410平台,将摄像头采集的 数据 通过硬件编码后通过 网络 发送,客户端(Linux)通过网络实时接收并显示的具体实现;主要介绍S3C6410的H264硬件编码特性和V4L2编程。 关键词:S3C6410 H.264 视频 监控 V4L2 0 引言 HHS3C6410是华恒科技推出的一款针对高性能手持 设备 和通用视频处理 应用 的低功率, 高性能的 嵌入式 开发 板,采用三星S3C6410 ARM1176JZF-S处理器,最高主频可达667MHz;S3C6410内部集成的多媒体编解码器(MFC)支持mpeg4/h.263/h.264的编码与解码,并支持VC1解码,性能可以达到全双工30fps@640x480同时编解码和半双工30fps@720x480或25fps@720x576编解码。 H.264/AVC标准是一套兼顾广播和电信,覆盖从低码率 通信 到高清晰电视的广域标准,相比以前的标准,具有更高的压缩率,高质量图像,容错 功能 ,并有很强的网络适应性。 1 总体 设计 监控 系统 由监控前端,监控终端,网络三部分组成,监控前端是一个嵌入式Linux系统,它通过S3C6410的Camera IF接收摄像头(SAA7113)采集的数据,并传送给硬件编解码(MFC) 模块 ,并把得到的经过H264压缩的数据打包发送到IP网络上,监控终端(Linux)通过网络接收数据包,经过解码实时播放。总体框架如图1: 图1. 总体框架图 整个嵌入式视频采集系统由 软件 和硬件两部分组成。硬件方面,以S3C6410处理器为核心通过Camera IF 接口 接收摄像头数据,经过MFC硬件编码后通过DM9000发送,UART作为开发 调试 接口;软件方面,引导 程序 和Linux内核,设备 驱动 程序形成基本的嵌入式运行环境,应用层负责视频采集,压缩及传输。 2 软件设计 软件设计包括嵌入式系统构建和应用软件两部分,其中嵌入式系统部分按照华恒科技S3C6410用户手册构建,其中包括了Bootloader,Linux内核,交叉 编译 器,驱动等;下面介绍应用软件设计: 监控前端: 监控前端主要包括视频采集模块和视频压缩编码模块。 视频采集模块使用V4L2接口收集摄像头数据到缓冲区中,视频压缩模块调用MFC驱动把YUV420数据压缩编码,同时可以指定编码参数。示例代码如下: cam_fp = open(cam_name, O_RDWR); //打开camera设备 … mfc_fd = open(MFC_DEV_NAME, O_RDWR |