中自网

热门搜索:电子  抽油机  PID  无线通讯  ABB  变频器  低压  电力电子 

当前位置:首页>>  方案与应用>>  方案锦集

搭配Intel® Media SDK的凌华科技aTCA-9300处理器刀片,大幅提升视频转码性能

放大字体  缩小字体 发布日期:2013-08-23   浏览次数:46783
近年来,随着市场和技术的发展,越来越多的集群网络架构开始转向基于模块化计算平台的架构,用以支持和提供多样化的网络单元和丰富的功能,如应用处理、控制处理、包处理、信号处理等。除了节约成本和缩短产品上市时间之外,在机架式系统和不同尺寸的网络设备上,此架构还可以提供模块化架构的灵活性以及随需而定的系统组件独立升级能力。
 前言

近年来,随着市场和技术的发展,越来越多的集群网络架构开始转向基于模块化计算平台的架构,用以支持和提供多样化的网络单元和丰富的功能,如应用处理、控制处理、包处理、信号处理等。除了节约成本和缩短产品上市时间之外,在机架式系统和不同尺寸的网络设备上,此架构还可以提供模块化架构的灵活性以及随需而定的系统组件独立升级能力。

COTS产品在许多领域都非常普遍,如电信、网络和国防等行业。相比定制化解决方案而言,COTS产品能够提供标准的功能、缩短产品上市时间,同时还可以降低成本。为了适应这一趋势的发展,凌华科技发布了ATCA ARIP(Application-Ready Intelligent Platform)产品,以满足不同用户的各种需求。


图1:凌华科技视讯流媒体ARIP平台

凌华科技视讯流媒体ARIP平台可以根据视频流的负载均衡策略(图1),将视频流数据转移至服务刀片,从而支持更高密度的3D视讯流媒体服务。通过整合Intel® Media SDK,凌华科技的aTCA-9300刀片可以提供高性能的视频转码,并且不增加CPU资源的负担。另外,aTCA-9300的尾板提供2个mini-SAS接口,可以为视频内容提供足够的存储空间,2个10Gbps以太网接口可以通过Internet将视频内容分发至最终用户。每个刀片最多支持3个存储设备,通过启用RAID功能和数据库功能,可以用来存储配置数据,软件图像以及最终用户的数据。

通过对运行在CPU和GPU上的视频转码任务进行比较,我们将验证如何利用Intel® Media SDK优化凌华科技aTCA-9300处理器刀片,从而分担CPU的工作负载,并利用GPU让转码处理速度更快、更有效。

凌华科技aTCA-9300

凌华科技aTCA-9300是一款高集成度的AdvancedTCA处理器刀片,支持灵活的处理器选择(支持Intel® Xeon® E3-1275V2 和 Core™ i7-3750/i5-3550S/i3-3220处理器),Intel® 超线程技术和4个DDR3 UDIMM内存插槽(总计可提供32GB内存容量)。网络I/O接口包括2个兼容PICMG 3.1 option 1/9 Fabric标准的10G以太网络端口(XAUI,10GBase-KX4),位于前面板的6个千兆以太网10/100/1000BASE-T端口,2个AdvancedTCA Base接口通道和2个后走线千兆以太网接口。


图2:aTCA-9300功能示意图

凌华科技aTCA-9300处理器刀片专为电信级安全和通信应用而设计,可以在网络基础架构中被用来作为IMS服务器,媒体网关,包检测服务器,流量管理服务器和WLAN/小蜂窝接入点控制器。aTCA-9300详细的功能架构如图2所示。

在传统的网络架构中,处理器模块提供应用层和控制层的功能,DSP模块提供定制化的信号层或媒体处理功能,包处理模块提供数据层的功能,交换模块提供in-band和out-of-band系统模块之间的路由交换。通过使用Intel®媒体软件开发工具(Intel® Media SDK),基于Intel®架构的处理器模块不仅可以实现传统的应用和控制进程任务,还可以高效的处理媒体进程任务(本篇技术白皮书将就此功能展开讨论)。

Intel® Media SDK

Intel® Media SDK是一个开发库,基于Intel® 的平台架构,提供业界领先的媒体加速性能,如编码、解码和转码。API库通过使用软硬件编解码自适应,可以跨平台、跨操作系统使用,开发者只需简单的编码即可适用今天或者未来的芯片组。开发者可以采用先进的可扩展接口,易于使用的编码示例和文档,可以获得产品在上市时间上的竞争优势,同时为应用提供杰出的动力和性能。建立在Intel® Media SDK上的应用提供了一个高度一致的,丰富的优质媒体用户体验。Intel® Media SDK的功能架构如图3所示。


图3:Media SDK架构展示了软件和硬件的视频流处理路径

Intel® Media SDK搭载Intel® Quick Sync Video硬件,可以提供最快的性能,既可以应用于一般视频处理程序中,也可以应用于如Microsoft DirectShow和Microsoft MFT(Media Foundation Transform)等插件中,如图4所示。

Intel® Media SDK把与Intel®图形媒体加速接口交互的复杂任务进行抽象化,并为基本的视频流处理操作提供一个高级的视图。同样的接口,也提供了纯软件实现方式,从而兼容更多的处理器。


图4:凌华科技视讯流媒体传输路径图

Intel® Media SDK针对视频处理,提供了丰富的功能,但是它并不提供针对多媒体流任务的综合性端到端的解决方案。值得注意的例外是音频处理,container格式操作,以及RTP流(如图4的亮黄色所示:多路分配器、音频处理程序,以及RTP发送器)。但是,凌华科技视讯流媒体APIP为处理这些操作提供了便利,能够协助用户撰写完整功能的流媒体应用,并能处理多种视频格式。

为了理解Intel® Media SDK是如何给HD graphics加速接口(不是软件接口)提供优势。我们创建了一种测试方法,通过对测试结果进行“apple-to-apple”(一种比较方法,需要两者有一一对应的特点)的比较和分析,得出一些有意义的结论。

测试方法

为了评估Intel® Media SDK如何增强aTCA-9300的媒体处理能力,我们使用了Intel® Media SDK的多路转码示例程序,这个程序包含在Intel® Media SDK 的Windows安装中,可以从下面的路径中找到。

< install-folder>\samples\sample_multi_transcode.exe

Intel® Media SDK多路转码示例程序演示了如何使用Intel® Media SDK API来创建一个控制台应用程序,并且使用这个应用程序进行视频流的转码(解码和编码),即从一个压缩的视频格式转换成其他的格式,并且在重新编码前可选择对解码后的的视频元素进行处理(例如调整大小)。这个应用程序支持多个输入流和输出流,这就意味着它可以同时执行多个转码会话。

这个示例的主要目的是用来证明CPU/GPU的平衡能力,并以此为基础在Intel硬件加速平台(支持编码)上获得最大的吞吐量。通过一些转码任务的并行运行以及充分挖掘CPU和GPU的转码性能即可达到这样的验证目的。

可执行文件sample_multi_transcode.exe需要下面的命令行参数切换到正常的运行状态:

-par < par_file > 参数文件是一个具有特殊结构的配置文件。它包含几个命令行,每行对应一个单一的转码会话。
-p < perf_file > 对应于每一个转码会话,将性能统计数据写入到指定的文件中。这样可以统计共用的转码时间。

右边的命令行实例可以用来执行Intel® Media SDK转码测试:

sample_multi_transcode.exe –par 1.par -p 1.perf

下面是两个par parameter 文件内容的实例.

-< sw|hw > -i::mpeg2 input1.mpeg2 -o::h264 output1.h264 -w 1920 -h 1080 -f 30

右边命令行中的par 选项适用于单一视频流转码。这个例子是源视频input1.mpeg2 (类型: mpeg2)进行转码,变成目标视频output1.h264 (类型: h264, 帧宽: 1920, 帧高: 1920, 帧速率: 30)。由于源视频的相关信息无需写入参数文件,因此转码程序将从视频剪辑中直接提取所需的信息。

-< sw|hw >选项表明是选择软件(CPU)还是硬件(GPU,带Intel® 高清图像媒体加速接口)来执行转码任务。如果”-hw”被选择,Intel® Media SDK将使用GPU上的Intel® Quick Sync Video硬件加速转码处理。如果”-sw”被选择或者这个选项没有被定义,那么CPU将直接来处理转码。

-< hw|sw > -i::h264 input1.h264 -o::h264 output1.h264 -w 848 -h 480 -f 30
-< hw|sw > -i::h264 input2.h264 -o::h264 output2.h264 -w 848 -h 480 -f 30
-< hw|sw > -i::h264 input3.h264 -o::h264 output3.h264 -w 848 -h 480 -f 30
-< hw|sw > -i::h264 input4.h264 -o::h264 output4.h264 -w 848 -h 480 -f 30
-< hw|sw > -i::h264 input5.h264 -o::h264 output5.h264 -w 848 -h 480 -f 30

右边命令行中的par 选项适用于多路视频流转码。这个示例将5个源视频文件input*.h264 (类型: h264)同时转码为5个不同的目标视频文件output*.h264 (类型: h264, 帧宽: 848, 帧高: 480, 帧速率: 30)。-< sw|hw >选项具有同样的用处(如同单一视频流转码一样)。

当sample_multi_transcode.exe程序完成了转码任务后,它将记录每一个转码过程所需要的时间,并写入到perf性能日志文件中。通过对此文件的解读,我们能够清楚地了解每个转码流的处理时间以及共同转码时间,这也是完成所有转码流所需花费的时间。

让我们把实例的实时多路转码能力当作测试基准。把一个10秒的视频片断的多个复本作为源视频(input*.h264),可执行文件sample_multi_transcode.exe将所有源视频进行同时转码,变成目标视频(output*.h264)。当转码任务完成后,通过查看perf文件中的共用时间,我们可以很容易的推断出一个特定的转码任务可以支持多少个实时转码流。如果性能文件中的共用转码时间(最大的消耗时间)大于视频播放的持续时间,那么就没有做到实时处理。相反地,如果共用转码时间小于视频播放的持续时间,我们可以肯定地说实现了实时转码。

如果从1个转码流开始并逐渐增加转码流的数量,我们可以测定何时共用转码时间开始变得比视频播放持续时间长。一旦这个时间被确定,我们就可以得出结论,先前的转码流数量就是特定实时转码任务可以支持的最大数量。当作这样的测试时,我们会用到另外一个被称作“Process Explorer”的工具,用来记录大致的CPU和GPU使用率。下面的伪码说明了当支持实时转码时,如何来获得最大的转码流数量。

Preparing the source media;
Start with one flow in the par parameter file;
while (TRUE); do
{
Start sample_multi_transcode.exe; 
do {
Evaluate the CPU and GPU usage;
} until the transcoding is completed;
Retrieve the common transcoding time;
if (common transcoding time > clip play duration)
{
break;
}
Increase the flows in the parameter file by 1;
}

The supported real-time transcoding flows = 
Number of flows in the last par file - 1;

 
 
[ 方案搜索 ]  [ ]  [ 告诉好友 ]  [ 打印本文 ]  [ 关闭窗口 ]  [ 返回顶部 ]

0条 [查看全部]  网友评论