新闻中心

EEPW首页>嵌入式系统>设计应用> 基于IPP库的MPEG-4视频传输系统设计

基于IPP库的MPEG-4视频传输系统设计

作者: 时间:2012-04-12 来源:网络 收藏

2 系统的模块分析及库的软件实现

本系统由采集模块,库的MPEG4编解码模块,RTP传输模块和回放模块组成,整个系统的软件流程图如图2所示,下面就该图对各个模块进行简要分析。

27.jpg
图2 系统软件流程图

2.1采集模块

视频采集由USB摄像头来实现,采用通用的Video4Linux API 进行编程。Video4Linux是嵌入式LINUX为图像传感器之类的语音图像设备提供接口函数。通过打开/dev/video0 设备文件对摄像头进行操作,得到YUV420格式的视频数据。采集视频数据的过程为:打开设备文件,查询并确认设备性能,对采集窗口,颜色模式,帧状态初始化,采用mmap()内存映射方式实现共享内存,开始采集图像数据,阻塞等待驱动缓冲好一帧完整的图像,循环采集直至程序退出。由于采用了内存映射方式而不是read(),write()等文件操作函数,绕过了内核缓冲区,加速了I/O访问。同时,该模块开辟了两块视频缓冲区,一块用于采集的同时另一块用于发送,显著提高了采集效率。

2.2库的MPEG4编解码

2.2.1 IPP库简介

IPP是Intel基于其系列处理器开发的一套跨平台的集成性能函数库(Integrated Performance Primitives)的缩写[3,5],它提供了广泛的多媒体功能,包括音视频编解码(如MPEG4,G.723),图像处理,语音识别及加密机制。 Intel IPP 针对包括PXA27X系列的大量微处理器进行优化,采用跨平台的通用API,提供图像处理、颜色转换、过滤、变换,以及算术、统计与图形运算等各种函数,为软件应用程序提供了一个友好的连接界面,不但节省了开发成本以及研发时间,还使得多媒体应用程序在INTEL处理器上的性能大大改善。

2.2.2 IPP库函数介绍

一般的IPP函数名如下:

ippdata-domain>name>_datatype>[descriptor>](arguments> ) ;

这里的data-domain所谓的域,指的是该IPP函数所属的功能范围。i(images/video)代表二维图像处理

datatype数据类型的定义是bit depth>位数加上bit interpretation>位解释组成。位数有1|8|16|32|64>,位解释则有u|s|f>[c]。

这里u是无符号,s是有符号,f是浮点数,c是复数。

descriptor是描述符,描述要操作的数据。

C加数字n表明图像数据有几个颜色频道,1|2|3|4。

I表示操作仅在此数据内存的范围内进行,不需要多余的内存空间。

R表示需要指定ROI即圈选范围。



评论


相关推荐

技术专区

关闭