GM8180的嵌入式视频服务器设计

gm8180的嵌入式视频服务器设计
摘要:详细介绍了一种基于***智原科技公司gm8180芯片的嵌入式视频服务器设计。描述了该服务器的结构和功能,对系统的各个组成模块进行了分析和介绍,如视频采集模块、音频输入和输出模块、以太网模块等。在软件方面,对rtsp流媒体服务器软件架构和视频采集、编码的流程进行了说明。系统采用h.264视频编码技术,单芯片即可实现2路d1的h.264实时编码以及多用户的实时流媒体服务。
引言
嵌入式网络视频服务器可将前端采集的视频信号压缩编码后,通过ip网络传送到终端进行显示或记录。与传统的模拟闭路视频监控系统相比,由于采用ip网络来传输数字视频信号,摆脱了模拟信号线路衰减的距离限制,实现远程监控。
目前流行的构建嵌入式网络视频服务器的方案有arm+dsp和asic两种。前者以ti公司和adi公司为代表,其优点在于具有很大的灵活性。利用dsp强大的计算能力,可以在前端嵌入式服务器中实现智能化和个性化的应用。但是由于arm+dsp方案涉及音视频编解码器的开发,开发成本大和开发周期长使其饱受诟病。相比之下,asic方案通常在单芯片上集成视频编码器,使得开发人员能够将精力集中在视频服务器的设计当中,大大缩减了开发成本和时间。本文介绍一种基于asic芯片gm8180的嵌入式网络视频服务器方案。
1 系统硬件结构
gm8180是由***智原(faraday)公司推出的一款高性能soc芯片,片上包含了主频高达500 mhz的arm9核以及h.264编/解码引擎、mpeg4编/解码引擎。除此之外,gm8180还集成了ddr控制器、flash/s静态存储控制器,以及支持2路8位itu-r bt.656视频采集控制器、usbotg、mmc/sdc、ide、i2c、spi、i2s、ac97等。
系统框架如图1所示,视频服务器系统充分利用gm8180主芯片内带有的两路视频采集通道,外接phips公司的saa7113h视频解码芯片实现2路cvbs视频信号采集。视频编码直接使用片内集成的h.264编码引擎进行h.264视频编码压缩,无需外接其他编码芯片。音频采集方面,gm8180直接与wolfson公司的wm8731音频编解码芯片连接,实现音频的采集和回放。在网络方面,gm8180集成了以太网mac控制器,外围直接连接以太网物理接口芯片dm9161a,即可完成以太网功能。此外,系统还包括了实时时钟、ddr、nor flash、电源模块等。
1.1 视频采集模块
gm8180片上集成的视频采集模块可以提供2路8位采集通道。输出itu-r bt.656的cmos视频采集模块,可以直接与gm8180相连接;输出cvbs或者s-video模拟信号的采集模块,则需要外接视频解码芯片。本系统中的视频解码芯片采用的是philips公司的sa7113h。saa7113h支持隔行扫描,支持pal、ntsc等多种视频输入格式,输出支持itu_r bt.656等多种格式,通过i2c总线控制,即可实现对输入模拟信号的预处理、水平和垂直同步信号的分离,以及亮度和色度的设置等。
gm8180片内集成了标准的i2c总线控制器,saa7113h通过i2c总线与gm8180连接。在i2c总线上连接2块saa7113h时,可将其上的rtso引脚悬空或拉低,为这两块saa7113h配置不同的i2c地址。具体连接如图2所示。
1.2 音频采集模块
gm8180支持多种音频输入接口,包括1个ac97和2个i2s接口。i2s是philips公司为数字音频设备之间的音频数据传输而制定的一种总线标准,主要用于家庭影院中的高质量音频d/a转换器。ac97则是以intel为首的5家计算机厂商制定的规格标准,除规定音频帧格式外,还具有控制功能。
本系统使用wolfson公司的wm8731音频芯片,通过i2s总线连接gm8180。wm8731可以提供cd音质的音频录音和回放,为16 ω的负载提供50 mw的输出功率。该器件具有多种功耗降低模式,在回放模式的下典型功率消耗为8.5 mw,同步录音和回放时的功率消耗为24 mw。待机模式下,供电电流可降低到50μa。
gm8180与wm8731的连接如图3所示,wm8731能够支持立体声采集和回放,在系统设计中将wm8731立体声采集/回放的左右声道分别拆分成2路独立单声道的采集/回放通道使用。
1.3 其他模块
网络方面,gm8180集成了以太网接口控制器,支持rmii接口,可直接连接以太网物理接口芯片dm9161a。dm9161a是davicom公司生产的一款低功耗、高性能的以太网物理层芯片,它完全兼容ieee 802.3u 10base-t/100:base-tx标准,同时兼容ansi tp-p(如1995)标准;支持mii和rmii两种接口模式,可完成对网络数据的接收解码和对数据帧的编码发送。
此外,实时时钟芯片s35390a通过i2c总线连接主芯片gm8180为系统提供准确、不间断的时间信息以及定时报警服务。
2 系统软件设计
在软件的设计上,采用arm-linux 2.6操作系统作为嵌入式服务器软件的承载平台。arm-linux的源代码完全免费开放,内核可任意裁剪,应用程序和驱动都非常丰富。在arm-linux操作系统的基础上,通过vide04linux(v4l)接口采集的视频图像交由gm8180片内的h.264编码引擎进行压缩编码;音频上,通过oss接口采集pcm数据进行自适应多速率窄带语音(adaptivemulti-rate narrowband,amrnb)编码。通过rtsp流媒体服务器为用户提供实时的音视频访问服务。
2.1 视频采集驱动
v4l是linux下用于获取视频数据的通用api接口。将gm8180的视频采集封装成v4l接口,以便位于应用层的rtsp服务器开发使用。v4l驱动程序需向操作系统内核注册video_device设备,用于指定文件操作接口,使得用户层可以通过标准文件操作来采集视频。
视频采集的流程如图4所示,用户设置采集参数(例如图像分辨率)时,驱动需要完成saa7113h和gm8180片上视频采集控制器的寄存器设置,以及驱动内核态下图像数据缓冲区的分配等工作。此后,应用层以vidiocmcapture标志和videosync标志为参数循环调用ioctl()函数来获得视频图像数据。
当应用程序以vidiocmcapture标志调用ioctl()函数时,驱动检查采集控制器和dma状态,如果当前是正常的采集状态,则ioctl()系统调用返回;如果当前不是正常的采集状态,则重新触发采集控制器和dma。当应
用程序以videosync标志调用ioctl()函数时,驱动先判断采集缓冲区内是否有图像数据,没有则将调用者挂起在采集等待队列中。直到采集完1帧完整的数据,在dma中断响应函数中调用wake_up()函数将采集等待队列中的进程唤醒,返回图像数据给应用层调用者。
2.2 h.264编码引擎
gm8180片上集成支持基线档次的h.264编码引擎,该编码引擎遵循amba 2.0总线规范。h.264编码引擎通过ahb总线与主cpu和其他片上模块相连。编码引擎同时具有ahb主、从模块功能:
◆当主cpu访问编码引擎内部寄存器时,编码引擎为从模块,主cpu作为主模块;
◆当编码引擎通过内建dma读写系统内存时,编码引擎为主模块,ddr控制器为从模块。
h.264编码引擎内建了两个dma通道,通道o用于读写原始图像、参考帧、重建帧等数据,通道1用于将编码完的h.264码流回写到系统内存中。在编码引擎工作之前,需要为图像原始数据、参考帧、重建帧缓存分配物理上连续的内存空间,并将缓存起始地址和长度以一定格式组织成dma命令链数组,设置给编码引擎dma通道o。将存放编码后码流数据的缓存基址设置给通道1。而h.264编码参数,例如条带类型、量化参数等则直接通过寄存器设置。
编码1帧图像时,h.264编码引擎会根据dma命令链数组中的图像数据和参考帧缓存基址,以宏块为单元读入当前帧和参考帧,进行运动估计、运动补偿、整型dct变换和量化。通过dma将重建帧写到系统内存中,更新参考帧缓存。最后进行熵编码,生成h.264码流并通过dma通道1写回到系统内存中。完成编码之后,编码引擎通过中断通知主cpu。
2.3 rtsp流媒体服务器
实时流协议(real time streaming protocol,rtsp)是由real networks和netscape公司共同提出的,该协议定义了一对多的应用程序如何有效地通过ip网络传送多媒体数据的方法。rtsp协议构建在实时传输协议(real-time transport protocol,rtp)和实时控制协议(realt-ime control protocol,rtcp)之上,它使用tcp或者udp完成数据传输。
如图5所示,rtsp服务器软件设计为分层结构,采用socket网络编程和pthread多线程技术实现。系统设计一个单独的线程用于监听rtsp端口以及进行rtsp会话的信令交互处理,这样的设计保证服务器能够对每个客户连接作出快速的响应。当一个rtsp会话成功建立之后,服务器将为该会话分配一组rtp/rtcp端口以及相应的缓冲区,同时创建一个新的线程用于负责发送rtp和rtcp报文以及接收、分析客户端反馈的rtcp接收者报告。在rtsp、rtp、rtcp协议实现和音视频编码器之间设计了一层实时流媒体管理层,通过它将音视频采集和编码驱动的初始化、采集数据、编码以及在运行过程中更改采集或者编码参数(如更改码率、帧率、请求编码关键帧)等操作抽象成统一的实时媒体文件接口。
结语
本文设计的基于gm8180的嵌入式视频服务器,通过片上的h.264编码引擎实现2路d1分辨率的h.264实时编码,通过软件实现2路amrnb音频编码,以及实时流媒体传输的相关协议。充分挖掘了gm8180这款asic芯片的潜在性能。

基于柔性多层带材(FMLF)的单相逆变系统EMI滤波器
非车规级传感,60GHz毫米波崛起
纯电动大巴再获青睐 比亚迪再下一城
三星Level U2颈带式耳机正式发布,续航长达18小时
RF功率半导体缩水两年后增长迅速,5年后增长率达75%
GM8180的嵌入式视频服务器设计
锁相放大器的结构_原理及用途
2020年金融云解决方案中国电信占据86.6%市场份额
小猿圈python学习之Python列表list合并的4种方法
彩屏多参数传感器的特点是怎样的
倒闸操作之前的“三对照”
深受欢迎 TE Connectivity热推锂聚合物电池热保护元件
思瑞浦汽车级CAN FD收发器产品特点介绍
回顾一下RF系统中的失配损耗和失配不确定性
柔性印制线路板的几种分类
人事调整一个月后 Jaunt正式宣布将退出VR市场
灵猴机器人和斗山机器人达成战略合作!展望未来智能工厂高效生产的美好愿景
负离子检测仪的应用/原理/特点/参数
LabVIEW实现近红外测量
LM3914型LED条图驱动器的原理