HEVC参考程序--编码器性能分析

转自:http://blog.csdn.net/zhuyonghao123/article/details/8926064

在VC2010上利用运行时程序性能分析工具对HM编码器进行性能分析,获取代码的关键路径,为后面对算法和代码进行优化提供参考。

    参考程序版本为HM-10.1-dev,分析工具为VC2010集成代码性能分析工具,测试序列为BQSquare_416x240_60,配置文件为encoder_intra_main.cfg和BQSquare.cfg。

    有人反映VC跑测试软件编码器非常慢,需要几个小时,我测试了一下是这样的,我使用上面的测试序列和配置文件,运行编码器耗时6236s。电脑配置为Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz 八核处理器,3.39GHz, 3.40GB内存,WindowsXPSP3系统。这么小的一个视频编码耗时1.8小时,也太慢了,编码时电脑CUP占用率13%,说明代码有很多的优化潜力。后来看了下VC设置看能不能设置优化的,然后看到方案默认为Debug模式,其他优化选项好像是正常的,就将Debug改为Release模式,在编译运行上面同样的序列和配置,耗时630s,电脑CPU占用率还是13%,速度差不多快了10倍,确实是减少时间的方法,应该还是可以优化的。

    下面继续VC2010进行程序性能分析。

电脑配置:

参数配置:

-c encoder_intra_main.cfg -c BQSquare.cfg           612x240x60

运行编码器:

VC2010Debug模式运行编码器,612x240x60序列,耗时6226s

VC2010Release模式运行编码器,612x240x60序列,耗时623s,相差10倍了

两种模式下CPU占用率差不多

启动VC性能分析工具进行HM性能分析:

关键路径:

TAppEncoder.exe          187,486

main:                                187,034

-- TAppEncTop::encode()        187,034

--TEncGOP::compressGOP()         186,972

--TEncSlice::compressSlice()           185,016

  --TEncCu::xCheckRDCostIntra()       18,236

    --TEncSearch::estIntraPredChromaQT  2,062

        --TEncSearch::estIntraPredQT         15,894

  --TEncCu::xCompressCU()                165,893

        --TEncCu::xCheckRDCostIntra()        109,110

          --TEncSearch::estIntraPredChromaQT    11,853

          --TEncSearch::extIntraPredQT()              96,206

        --TEncSearch::xRecurIntraCodingQT()    75,052

        --TComPrediction::preIntraLumaAng()    5,909

        --TComRdCost::calcHAD()                       5,276

换一个配置文件测试:

-c encoder_lowdelay_main.cfg  -c BQSquare.cfg                   612x240x60

使用这个配置文件时,分析得到的关键路径与之前的路径差别较大,但是对比函数调用关系树的话还是差不多的。

主要消耗还是compressCU函数

 

编码器测试:

使用编码器对-c encoder_intra_main.cfg -c BQSquare.cfg 612x240x60序列编码文件解码:

解码总共耗时8sCPU占用率13%

解码速度还是可以的,但这个YUV图像大小很小,需要测试更大尺寸的序列,同时使用更高性能的配置参数进行编码和解码测试。

来对比一下编解码图像质量

原始YUV文件第一帧:

编解码后第一帧:

整体上和原始图像差不多,注意地板的纹理,编解码后地板在亮区的纹理已经没有了,在暗区如左下角太阳伞下纹理还可以看到。

原始YUV序列第500帧:

编解码后YUV序列第500帧:

可以看出阳台瓷砖纹理、雨伞纹理、铁栅栏纹理和水面纹理都有了不同程度的模糊。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值