天天看点

使用Intel VTune Amplifier XE测试x264编码器编码复杂度信息方法

        测试的是x264编码器的编码复杂度,使用的测试软件是Intel的VTune Amplifier XE 2011。

        即,测试软件:VTune Amplifier XE 2011(软件需要去intel官网下载,但是需要注册用户名,这里分享下我网盘里的地址:http://pan.baidu.com/s/1dDgt5tv)和x264.exe

在进行x264的复杂度测试时,我们是以运行程序的CPUtime来表示复杂程度。IntelVtune软件是一个比较强大的性能分析软件,可以帮助我们收集我们所需要分析的数据,其中就包括cputime,并且此软件获得的运行时间相比较于其他方式得到的要精确很多,因此我们选择这款软件。由于实验过程中要进行大量的数据测试(不同的参数,不同的参数组合,不同的序列),因此我们要使用脚本文件来进行大量的测试。下面介绍下intelvtune软件的使用以及批处理的写法:

首先,我们安装vtune软件,一般在安装vs时已进行了安装,默认目录C盘。安装完成后,在安装目录下会生成amplxe-cl.exe应用程序,这就是我们批处理使用的应用程序,同时也会生成一些其他文件(我们之后的批处理运行中要在此目录下,因为要需要几个其他生成文件的辅助环境)。

接下来,就进行写批处理来运行,写批处理过程中要分为两项内容:第一,我们要选择所要的分析类型,包括hotspots ,concurrency ,locksandwaits ,lightweight-hotspots ,这里我们主要使用concurrency类型分析。这样我们可以写出收集数据分析的批处理,示例如下amplxe-cl -collect concurrency -result-dir r005ccE:\menglei\HARBOUR\x264-122.exe -v --psnr --bitrate 100 --frames 100 -o NULE:\menglei\test\cif\foreman_cif.yuv --input-res 352x288 ,按次序分别代表应用程序 -分析类型  -结果路径  被分析的应用程序(实验中就是x264.exe)--x264运行中的命令参数,这样第一项就完成。第二,我们要从分析结果中获得我们需要的数据,即cpu time,批处理示例如下amplxe-cl-report hotspots -r r005cc -report-output=MyReport3.csv -format=csv-csv-delimiter=comma,按次序分别代表应用程序 -收集的数据类型 -获得数据的结果文件 -输出结果的路径 -输出文件的格式(这里格式可分为文档txt和表格excel格式,示例中是excel格式,并且结果文件r005cc必须是之前分析已生成的结果),这样两项才能够完成cpu time的获得。注意:必须要先进行-collect分析,才可以进行后面的-report,其中report报告的数据也分很多种类,具体可以查阅下面网址的相关文档了解,http://software.intel.com/sites/products/documentation/doclib/stdxe/2013/amplifierxe/win/ug_docs/GUID-912FEE5D-D5FA-4094-BA87-7690CA0C510A.htm这里详细介绍了各个参数的类型选项,以及相应的输出格式,有兴趣可以仔细看下!

最后,前两项批处理文件写好,然后设置变量来不断的调用写好的批处理,就会生成大量实验结果,完成复杂度的测试。

主要过程如下:

1、  进入C:\ProgramFiles\Intel\VTune Amplifier XE 2011\bin32目录下建立两个批处理文件(示例批处理文件就是1.bat,3.bat;其他两个1-2.bat和3-2.bat主要是用来循环调用前两个批处理的)。

2、  1.bat主要是Vtune调用不同参数下的x264产生复杂度结果,这个结果包括时间一类的信息,是在x264编码运行过程中自动生成的,是Vtune软件生成的固有格式工程。

3、  3.bat是Vtune搜集需要的结果,比如时间,输出到excel表格,便于提取。

具体操作可以分析我的四个批处理,测试分析一下结果就可以明白了。 示例批处理1.bat内容: echo   %1 %2 %3

amplxe-cl -collect concurrency -result-dir E:\leilei\laoshi25\res_%1_%2_%3 E:\leilei\x264-122.exe --threads 1 --profile main --tune psnr --psnr --frames 20 --pass 1 --slow-firstpass  --cabac --no-psy --subme 7 --deadzone-inter %2  --deadzone-intra %1   --partitions all --bitrate %3 -o test_pass2_1000.264 D:\test_sequence\cif\bus_cif.yuv --input-res 352x288

示例批处理1-2.bat内容:

@echo off

for  %%i in (esa tesa) do (

    for  %%j in ( 8 16 24 40 64 128 ) do (

          for  /l %%k in ( 1000,500,3000) do (1.bat %%i %%j %%k)

if exist output.txt move output.txt me-%%i_%%j.txt)

)

示例批处理3.bat内容:

echo %1 

amplxe-cl -R hotspots -r E:\leilei\subme\norc\keyint-%1_%2_%3 -report-output=E:\leilei\subme\norc\keyint-%1_%2_%3.csv -format=csv -csv-delimiter=comma

示例批处理3-2.bat内容:

@echo off

for  %%i in (dia hex umh esa) do (

    for  %%j in ( 8 16 24 40 64 128 ) do (

          for  /l %%k in ( 1000,500,3000) do (3.bat %%i %%j %%k)

)

)

以上全套内容打包放在了CSDN资源中,地址:http://download.csdn.net/detail/wzxsjdt/8412477