基于达芬奇技术的视频传输系统设计

2010-03-14 09:04常国柱田增山谭宇玲
电视技术 2010年10期
关键词:编解码达芬奇调用

常国柱,何 维,田增山,谭宇玲

(重庆邮电大学 移动通信技术重点实验室,重庆 400065)

1 引言

视频传输是一种应用非常广泛的系统,它综合利用了视频、计算机、通信、网络等多项技术。近年来,随着网络和多媒体技术的飞速发展,视频传输系统因其信息全面性和适时性的特点,在各个行业得到很广泛的应用,并且市场潜力巨大。

但是由于第2代无线通信网络带宽的限制,无法实现实时流畅的动态视频传输效果。随着第3代无线通信技术的发展,传输带宽已经有了很大的改善。从理论上讲,CDMA20001x网络可以实现上行最大1.8Mbit/s、下行最大3.1Mbit/s的数据业务,其完全可以实现清晰流畅的视频传输效果[1]。笔者设计时采用了第3代移动通信模块MC8630A,可有效地解决第2代无线通信网络在视频传输中带宽不足的问题。

2 视频传输系统总体设计

本系统主要功能模块分为CPU、智能电源管理、无线网络通信和摄像头等部分,系统结构框图如图1所示。

在图1中,CPU选用的是采用达芬奇技术的具有ARM+DSP双核的OMAP3530芯片。DSP核负责视频信号的处理,由其完成视频压缩算法,在本系统中采用的是H.264算法[2];ARM核完成系统的控制功能和整体调度。由于独特的设计使得其具有非常明显的优势,DSP子系统中C64X+新型DSP内核的引入极大地提升了它的运算能力,从而提高了视频编解码的速度。达芬奇技术的双核结构中引入了ARM处理器、相应的配套操作系统、驱动程序以及软件方面的参考结构,极大地增强了系统的控制功能。而且针对DSP与ARM的双核结构,达芬奇技术设计了2个处理核之间通信接口的解决方案,保证2个处理器的协同工作。在保持DSP强大计算能力的基础上,使芯片能适应更多应用场合的需要[3]。

TPS65930是TI公司设计的专门针对OMAP3530的电源管理芯片。CDMA20001x无线网络通信模块选用的是中兴通讯开发的MC8630A无线通信模块。

MIC2551A芯片是USB单片收发器,对OMAP3530和CDMA20001x之间的USB信号进行转接,通过它给TDM330提供驱动能力和电平转换,而且可根据CPU忙闲状态来操控信号传输速度,最大限度地提高CPU的使用效率,完成USB通信[4]。

3 软件设计实现

达芬奇参考软件框架分为应用层、信号处理层和外设驱动3部分,如图2所示。

在系统的用户空间可以添加自己的程序,通过Codecs Engine 的 VISA(Video,Image,Speech,Audio) API来调用DSP端的算法,通过EPSI(Easy Peripheral Software Interface)API来访问和操作DaVinci的外设;信号处理层通常运行在DSP上,负责信号处理、音视频编解码算法、Codecs Engine、DSP的实时操作系统DSP/BIOS和ARM通信的模块;驱动层是外设模块的驱动程序[5]。具体实现分以下3个步骤完成[6]:算法封装、算法打包和算法调用。

3.1 算法封装

达芬奇技术的算法封装需要支持XDAIS(eXpressDSP Algorithm Interface Standard) 和 XDM(eXpressDSP Digital Media)。XDAIS和XDM继承了TI DSP在单个处理器上执行各种媒体功能的能力,通过执行这些标准来和eXpressDSP保持一致。

XDM 标准定义了control()和 process()这 2 个API(Application Programming Interface)。control()提供了一个标准的方法,它控制算法实例,实时地从算法中接收状态信息。process()则是进行数据处理的API。

除了为多媒体Codecs定义标准化的API外,XDM也标准化了从应用程序传到这些API的基本参数。应用程序可以通过扩展数据结构,定义额外的参数。XDM是XDAIS的扩展,它们一起组成了应用程序和Codecs组件的接口。XDM把应用程序和Codecs组件隔离开来,不必随着Codecs的改变而改变。

本系统实现了一个视频编码器通用接口IVIDENC,实现结构体IVIDENC_Fxns如下:

IVIDENC_Fxns VIDENC_X264={

{IALG_Fxns},

VIDENC_X264_process,

VIDENC_X264_control};

其中 VIDENC_X264_process,VIDENC_X264_control,IALG_Fxns实现了IALG的接口以及算法和框架的交互。

3.2 算法打包

3.2.1 编解码服务器的配置

编解码服务器(Codec Server)是一个二进制文件,它集成了编解码器、框架组件和一些系统代码。当Codec Server运行在DSP上时,使用DSP/BIOS作为其内核。Codec Server同时包含了对客户请求的相关DSP/BIOS线程。Codec Server可以代表实际的DSP硬件,导入到DSP上的镜像文件以及正在运行的任务,其配置需要以下2个步骤:

1)通过TCF脚本配置DSP/BIOS;

2) 通过 XDC(eXpress DSP Components)配置其他组件, 比如 Framework Components,DSP/BIOS Link,Codecs Engine等。

3.2.2 算法打包的配置

设计合理的内存映射是系统运行的关键。本系统采用的128 Mbyte DDR2存储器,其由ARM端和DSP端共享使用,那么需要分配的内存范围为0x80000000~0x88000000,需要将存储器分为Linux,CMEM,DDRALGHEAP,DSPLINKMEM和RESET_VECTOR 5个部分。设计存储器映射如表1所示。

表1 存储器映射表

3.3 算法调用

达芬奇技术应用程序开发一般是借助Codec Engine来调用算法包。Codecs Engine是一组用来配置运行XDAIS算法的API,它提供VISA接口,用来与符合XDM的XDAIS算法互动。不管算法是运行在ARM端,还是DSP端, 也不管操作系统是 Linux,VxWorks,DSP/BIOS或者WinCE,对算法的接口调用都是一致的。通过配置*.cfg可以决定自己的Codecs是运行在ARM端还是DSP端。

应用程序的代码(或者其使用的中间件)被称作Codecs Engine API,其包括核心引擎API和VISA API。

本系统使用的算法是符合XDM标准的视频压缩算法,引擎名在*.cfg文件中指定为videnc_x264。下面描述如何在应用程序中调用算法:

1)调用核心引擎API中的初始化模块CERuntime_init()来初始化引擎。

2)调用核心引擎API中的Engine_open()来打开编解码引擎。

3)调用VISA API中的VIDENC_create(Engine_Handle e,String name,VIDENC_Params*params)来创建一个编码算法实例。

4) 调用 VISA API中的 VIDENC_control(VIDENC_Handle handle, VIDENC_Cmd id, VIDENC_Dynamic-Params*params, VIDENC_Status*status)来控制算法实例。

5)调用 VISA API中的 VIDENC_process(VIDENC_Handle handle,XDM_BufDesc*inBufs,XDM_BufDesc*out-Bufs,VIDENC_InArgs*inArgs,VIDENC_OutArgs*out Args)来处理算法。

4 网络通信

在CDMA20001x模块准备网络通信之前,需要通过AT+GSN指令获得该CDMA20001x模块的ESN,从CDMA20001x模块的回码中提取出8位的ESN字符串,转为长整型值后将其保存,作为该模块的标识。然后通过执行 system(“pppd call unicom_ttyUSBS1&”)来进行 CDMA20001x模块的拨号连接。最后进行PPP拨号,以便程序控制该模块的网络通信[7]。

5 交叉编译环境的搭建

交叉编译环境的搭建主要分为以下4个步骤:

1)安装目标板的Linux支持包软件。

2)安装包含实例、演示程序、Codecs Engine组件、DSP/BIOS Link、XDAIS、XDM头文件、本地电源管理模块、Framwork Componeents和 CMEME(contiguous memory allocator)的DVSDK软件。

3)安装arm-2009q1-203-arm-none-linux-gnueabii686-pc-linux-gnu.tar.bz2工具链。

4)建立NFS。尽管NAND Flash包含文件系统,但是在开发过程中,为了方便开发和调试,要在主机和目标系统之间建立NFS。

完成之后,对U-Boot、Linux内核、DVSDK软件进行编译,最后编译应用软件并复制文件到目标板上运行。

6 测试结果和分析

经过测试,性能指标如表2所示。从表2中能看出在采用CDMA20001x进行视频传输时速度高于GSM传输,可以克服第2代无线通信在视频传输中带宽不足的问题,而且传输的正确性和系统延时等性能指标也有了明显的改善。

表2 视频传输效果对比

7 小结

笔者设计实现的视频传输系统充分利用了第3代移动通信系统带宽宽、传输快的特点克服了带宽不足的问题。通过实测,本系统可以提供流畅清晰的视频传输效果,随着第3代移动通信网络进一步的完善和优化,无线视频传输系统将会有更大的发展。

[1]杨大成.CDMA20001x移动通信系统[M].北京:机械工业出版社,2003.

[2]毕厚杰.新一代视频压缩编码标准——H.264/AVC[M].北京:人民邮电出版社,2005.

[3]彭启琮.达芬奇技术——数字图像/视频信号处理新平台[M].北京:电子工业出版社,2008.

[4]OMAP35X applications processor technical reference manual[EB/OL].[2010-05-24].http://focus.ti.com/docs/prod/folders/print/omap 3530.html.

[5]TALLA D,GOBTON J.Using davinci technology for digital video devices[EB/OL].[2010-05-24].http://www.inf.pucrs.br/~calazans/graduate/SESD/Seminarios/Using%20DaVinci%20Technology%20for%20Digital%20Video%20Devices.pdf.

[6]成嘉,张文雄,李善劲.基于达芬奇技术的H.264视频编码器的实现[J]. 电视技术,2007,31(12):34-36.

[7]中兴通讯股份有限公司.MC8630A模块用户硬件设计手册V1.0[EB/OL].[2010-05-24].http://www.szsiso.com/UploadFiles/2010426117535 36.pdf.

猜你喜欢
编解码达芬奇调用
轻松做完大手术——聊聊达芬奇手术机器人
1553B总线控制器编解码设计
核电项目物项调用管理的应用研究
为多重编解码世界做好准备
大型民机试飞遥测视频编解码方法研究
LabWindows/CVI下基于ActiveX技术的Excel调用
达芬奇想飞
基于系统调用的恶意软件检测技术研究
手术室的“阿尔法狗”:达芬奇机器人
2G/3G网络IP化语音编解码协商策略部署研究