历史上的今天
返回首页

历史上的今天

今天是:2025年02月18日(星期二)

正在发生

2018年02月18日 | 基于Au1200无线车载视频监控的设计与实现

2018-02-18 来源:eefocus

0 引 言 

进入信息时代,汽车的智能化、个性化需求越来越高,汽车驾乘中的安全、娱乐以及信息服务越来越受到重视。但现有大部分的车载系统都存在功能单一,智能化低,使用不便,不易组网等缺点。随着无线宽带网络的发展、数字移动电视的建设、多媒体技术的应用,集多种功能于一体的无线车载媒体处理系统应运而生,它可广泛地应用于铁路、地铁、客运汽车等交通系统。 

本文简要介绍了基于Au1200处理器,包含无线传输、视频播放、视频监控等多种功能的嵌入式无线车载媒体处理系统的设计方案,详细描述了基于ffmpeg的软压缩方法,设计并实现了车载系统中视频监控部分的视频采集和视频压缩。 

1 无线车载媒体处理系统简介 

基于Au1200的无线车载媒体处理系统网络架构如图1所示。采用客户端/服务器架构,由车载客户端、车站服务器及通信网络三部分组成。其中,客户端选用 AlchemyTM Au1200作为主控芯片。该芯片采用了MIPS32核心,是针对数字多媒体播放器、汽车信息娱乐系统等应用领域设计的一款低功耗、高性能的嵌入式处理芯片。利用Au1200在媒体处理方面的优势及其丰富的外围接口,无线车载媒体处理器的系统框图如图2所示。用户可以通过按键控制整个系统无线传输、视频播放、视频监控等多种功能。 

服务器端使用通用的PC机服务器,为整个系统提供多媒体资源管理和无线网络服务。 

每个装有无线车载媒体处理器的车辆,可以通过无线网络连接服务器,并按照指定的方式传输媒体资源。 

2 无线车载视频监控的硬件设计 

Au1200 嵌入式处理器采用MIPS32核心,能够支持包括MEPG-1,MPEG-2,MPEG-4,WMV9,H.263,MP3,WMA,ASF,AVI和 JPEG等多种媒体格式,其内部集成了专门的媒体加速引擎(Media Acceler-ation Engine,MAE),不需要外部DSP,因而可以简化编程环境并减少组件,拥有丰富的片上资源和外部接口,支持USB 2.0,IDE,CCIR656摄像头等接口。无线车载视频监控硬件框图如图3所示。 

其中包括: 

(1)视频监控输入部分:采用Omni Vision公司的彩色CMOS图像传感器OV9650作为系统的视频输入设备,利用Au1200自带的CIM(Camera InteRFace Module)接口,可以方便地控制OV9650。通过I2C方式,配置OV9650摄像头的工作模式,通过CIM接口读入采集到的视频数据,并映射到内存单元中。根据不同流向需求,处理视频数据流,实现系统的录制、存储、播放、传送等功能。 

(2)视频监控数据存放部分:通过ffmpeg软压缩方法,将采集到的视频数据按指定视频格式实时压缩成文件存储于硬盘中。 

(3)视频监控数据的实时播放部分:采集到的视频数据映射到内存后,将RGB视频数据直接输出到LCD缓冲区中,即可实现监控视频在LCD设备中的实时播放。系统也支持视频输出到VGA接口的显示设备中实时播放。此时,需要将数字视频数据转换为模拟视频数据。可采用ADI公司的ADV7123芯片实现三路高速、10位输入的高速视频数/模转换。三路DAC可以分别处理红、绿、蓝视频数据,实现模拟显示终端的高分辨率显示。 

(4)视频监控的远程传输部分:通过客户端系统的无线网卡(支持802.11b/g)连接无线局域网络,将硬盘中的录像文件以无线的方式,上传到服务器中进行保存。 

(5)用户控制部分:系统设计功能按键,分别连接到支持中断的GPIO口上,用户通过按键选择方式,方便地对视频监控进行控制。 

3 无线车载视频监控的软件设计 

无线车载视频监控的软件部分主要包括: 

(1)内核及驱动部分 

系统使用Linux 2.6.11内核作为系统的内核,通过make menuconfig命令,根据用户需要配置合适的内核和驱动,生成内核文件镜像。设备驱动程序与系统硬件紧密相关,通过修改和调试后模块化的集成于内核之中。所涉及到的驱动程序包括用户按键驱动、摄像头驱动、LCD/VGA显示驱动、硬盘驱动、播放器相关的MAE驱动和与无线传输相关的无线网卡驱动等。在此着重介绍系统摄像头驱动的关键部分。 

在摄像头驱动中,定义数据结构cim_cmos_cam-era_config对摄像头设备进行描述: 

通过上述数据结构,可以有效地描述摄像头设备的各种参数。其中,config_cmd是一个十六进制的数组,对应不同工作模式的摄像头配置摄像头寄存器。 


驱动程序为上层应用提供了API接口,通过对应file_operations数据结构中的各个成员函数进行系统调用,在上层程序中,利用函数调用,读取驱动中fileoperations的相应成员函数指针,完成对应函数功能。 

在系统的CIM接口的驱动程序中做如下定义: 

成员函数分别完成了与Au1200 CIM接口相连摄像头设备的打开、控制、读写、映射以及释放等基本功能。例如通过ioctl操作对摄像头进行配置: 

2)库与协议栈部分 

为了支持上层应用程序的运行,软件系统中还必须包含众多与之相关的函数库和协议栈。其中,主要包括了与系统运行相关的基本函数库,与音视频编解码相关的音视频编码库,与用户界面相关的Qtopia库以及各种接口协议组成的协议栈。 

(3)应用层部分 

视频监控的软件流程图如图4所示。启动摄像头后,将采集到的视频数据映射到内存中。通过输出控制,选择视频数据的流向。其中,数据处理部分主要涉及与ffmpeg相关的视频压缩处理。 

(4)用户控制部分 

系统采用Qtopia-core-opensource-4.2.2开发用户界面。由于采用按键控制的方式,需要将按键驱动程序添加到QT库中。通过中断的方式,可以捕获按键信号,并通过QT中的信号与槽的机制控制信号传输,使得当每个按钮被按下时,触发用户程序中的某个函数,并将相应的信号量传递出去,从而实现对整个系统的控制。 

4 基于ffmpeg的软压缩方法 

ffmpeg是一个开源免费的软件,它提供了录制、转换以及流化音视频的完整解决方案。使用ffmpeg软压缩的方式,不增加系统额外的硬件开销,对采集到的视频数据进行实时压缩。在视频处理应用程序的编写过程中,需要按照ffmpeg定义的数据结构来描述视频数据,调用ffmpeg中的各种库函数,将摄像头采集到的视频数据按照设定的格式进行压缩,并存成视频文件,其处理流程如图5所示。 

其中包括: 

(1)ffmpeg初始化:定义与视频处理相关的数据结构 AVFormatContext,AVOutputFormat,AVStream,AVCodecContext,AVCodec,AVFrame,AVPicture 等,并通过av_register_all(),av_alloc_format_context()等函数初始化相应的数据结构。 

(2)压缩参数设置:主要涉及到视频压缩的相关参数,如帧率、视频分辨率、编码类型等,通过av_set_parameters()函数进行设置。 

(3)图像格式转换和视频数据填充:按照视频监控要求,利用img_convert()等函数对图像格式进行转换,并将转换后的视频数据通过 avpicture_fill(),fill_yuv_image()等函数填充到AVPicture数据结构中,以供编码器使用。 

(4)ffmpeg视频编码:利用avcodec_encode_rid-eo(),av_rescale_q()等函数,调用ffmpeg编码库进行视频编码。 

(5)文件存储操作:利用av_write_header(),av_write_frame(),av_write_trailer()等函数将压缩后的视频数据写入指定文件中。 

(6)采集结束:采集结束后,利用avcodec_close(),av free()等函数释放内存资源,退出程序。 

ffmpeg提供功能丰富的音视频函数库,包括libav- codec,libavformat,libavdevice,libavfilter,libavutil和libswscale等,可为用户提供许多音视频处理相关的操作。系统应用程序中调用到的ffmpeg相关函数主要依赖libavformat库(支持所有的普通音视格式的解析器和产生器的库)和 libavcodec库(具有高效、高可复用的音频/视频编解码库)。 

5 结 语 

本文介绍了基于Au1200无线车载视频监控的设计与实现,着重介绍了基于ffmpeg软压缩方法对视频数据的压缩和存储的实现,在实际应用中具有价值。 


推荐阅读

史海拾趣

HI Microwave Technology Limited公司的发展小趣事

在稳固国内市场的同时,HI Microwave积极开拓国际市场,与全球多家知名企业建立了长期稳定的合作关系。公司凭借优质的产品和服务,赢得了国内外客户的广泛赞誉。此外,HI Microwave还积极参与国际展览和交流活动,不断提升品牌知名度和影响力。通过与国际同行的交流与合作,公司不断吸收先进的管理理念和技术成果,为企业的持续发展注入了新的活力。

HIT(日立)公司的发展小趣事
在电路设计时充分考虑各种因素,如元件的耐压、耐流能力,以及电路的抗干扰能力等,确保电路能够稳定工作。
DIALIGHT公司的发展小趣事

DIALIGHT公司的故事始于1938年的纽约布鲁克林,当时该公司专注于为飞机生产仪表板灯。随着技术的不断进步和市场的变化,公司在1971年,即LED推出仅一年后,推出了他们的第一个LED产品。这一举措标志着DIALIGHT正式从传统的飞机仪表板灯制造转向LED照明技术的研发和应用。从此,DIALIGHT彻底改变了LED的用途,将其广泛应用于世界各地的交通控制、指示灯、结构塔和工业场所,为全球提供了优质的照明解决方案。

ANADIGICS公司的发展小趣事

DIALIGHT公司一直专注于工业LED照明领域的发展。他们深入了解工业空间照明的需求和挑战,设计了一系列专为工业应用而定制的LED照明产品。这些产品不仅易于安装和维护,而且能在恶劣的环境下持续使用。此外,DIALIGHT还提供集成系统解决方案,帮助客户降低能源成本、维护成本和碳足迹,同时提高设施的安全性和生产力。通过不断创新和优质服务,DIALIGHT在工业LED照明领域赢得了广泛的认可和信赖。

Hayashi Denko Co Ltd公司的发展小趣事

DIALIGHT公司一直专注于工业LED照明领域的发展。他们深入了解工业空间照明的需求和挑战,设计了一系列专为工业应用而定制的LED照明产品。这些产品不仅易于安装和维护,而且能在恶劣的环境下持续使用。此外,DIALIGHT还提供集成系统解决方案,帮助客户降低能源成本、维护成本和碳足迹,同时提高设施的安全性和生产力。通过不断创新和优质服务,DIALIGHT在工业LED照明领域赢得了广泛的认可和信赖。

ARRA Inc公司的发展小趣事

DIALIGHT公司的故事始于1938年的纽约布鲁克林,当时该公司专注于为飞机生产仪表板灯。随着技术的不断进步和市场的变化,公司在1971年,即LED推出仅一年后,推出了他们的第一个LED产品。这一举措标志着DIALIGHT正式从传统的飞机仪表板灯制造转向LED照明技术的研发和应用。从此,DIALIGHT彻底改变了LED的用途,将其广泛应用于世界各地的交通控制、指示灯、结构塔和工业场所,为全球提供了优质的照明解决方案。

问答坊 | AI 解惑

[求助] 逆变器仿真有什么软件比较好?

逆变器仿真有什么软件比较好?…

查看全部问答>

关于下载内核大小的问题

在wince下我用一个叫USBD.EXE的东西下载内核(这个东西不知道怎么来的,我到现在这个公司就已经有这个东西了,其他人也不知) 每次下载内核的时候都是在PB下打开命令行工具:Build OS->Open Release Directory,然后输入USBD这个命令,就直接下载了 ...…

查看全部问答>

求教:vxWorks应用程序如何能让系统重启?

vxWorks应用程序如何能让系统重启?…

查看全部问答>

哥们有一个wince的开发项目有有兴趣的朋友可以联系我,我把需求发过去。哥们不白用兄弟们的。有偿服务project911@163.com

哥们有一个wince的开发项目有有兴趣的朋友可以联系我,我把需求发过去。哥们不白用兄弟们的。有偿服务project911@163.com…

查看全部问答>

2407和2812选哪个?

项目可以用2407完成,是不是就没有必要用2812呢?两者之间的差别大吗?比如成本方面?…

查看全部问答>

L297+298资料并驱动步进电机

本帖最后由 paulhyde 于 2014-9-15 03:31 编辑 方便大家驱动步进电机!!!  …

查看全部问答>

购入一块ARM7开发板,求指导

完全新手,一点点琢磨,问模拟量输入是什么?怎么理解?…

查看全部问答>

超高频RFID一体机-周计划

嗯,上传周计划吧,时间很紧呐! Beaglebone外围电路设计周计划模板超高频RFID一体机试用者ID:lyzhangxiang     周计划周论坛提交内容9.27-10.3      (第一周)1、ti-sdk-am335x-evm文档熟悉便于开发,并 ...…

查看全部问答>

做了个小东西,来晒室内的温度

貌似我的强迫症啊越来越严重了,我想知道当室温度达到多少时我才需要开空调,当室温多少时我感觉不冷不热 于是做了这个,把这些数据都量化了 用STC12C5628AD+DS18B20+1602+键盘 键盘是用来设置报警温度的,但没蜂鸣器(有的话也响的烦,还是没 ...…

查看全部问答>