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

[10-10 20:38:44]   来源:http://www.88dzw.com  单片机学习   阅读:8297

文章摘要: 视频采集的流程如图4所示,用户设置采集参数(例如图像分辨率)时,驱动需要完成SAA7113H和GM8180片上视频采集控制器的寄存器设置,以及驱动内核态下图像数据缓冲区的分配等工作。此后,应用层以VIDIOCMCAPTURE标志和VIDEOSYNC标志为参数循环调用ioctl()函数来获得视频图像数据。 当应用程序以VIDIOCMCAPTURE标志调用ioctl()函数时,驱动检查采集控制器和DMA状态,如果当前是正常的采集状态,则ioctl()系统调用返回;如果当前不是正常的采集状态,则重新触发采集控制器和DMA。当应用程序以VIDEOSYNC标志调用ioctl()函数时,驱动

基于GM8180的嵌入式视频服务器设计,标签:单片机开发,单片机原理,http://www.88dzw.com
    视频采集的流程如图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控制器为从模块。

www.88dzw.com
    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协议实现和音视频编码器之间设计了一层实时流媒体管理层,通过它将音视频采集和编码驱动的初始化、采集数据、编码以及在运行过程中更改采集或者编码参数(如更改码率、帧率、请求编码关键帧)等操作抽象成统一的实时媒体文件接口。

结语

上一页  [1] [2] [3]  下一页


Tag:单片机学习单片机开发,单片机原理维修教程知识 - 单片机学习

《基于GM8180的嵌入式视频服务器设计》相关文章