HEVC/H.265整个程序调用流程分析以及函数复杂度分析

原创 2012年09月04日 18:00:56

HEVC整个程序调用流程:

Encode -> compressGOP -> compressCU

->xCompressCU->copyFromPicYuv

->xCheckRDCostIntra-> initEstData

->xCheckRDCostInter ->xCheckRDCostMerge2Nx2N

->getNumberOfWrittenBits

->copyToPic->xCopyYuv2Pic

 

编码流程可简单画图如下:

 

 

其中帧间以及各层级划分省略.

 由于画图比较繁琐,而且还不一定直观, 下面都按照结构抓图贴出来, 注意所有子函数都是按照函数复杂度排序的.

 

从xCompressCU函数这里开始进行4叉树多层划分嵌套,从下图也能看出.

编码的层次结构:

 

1: 下面分析帧内编码的主要函数:

 

 

进一步展开帧内最耗时estIntraPredQT函数如下:

 

再把xIntraCodingLumaBlk这一层展开如下:

 

2.下面分析帧间编码:

把第2层展开xTZSearch函数如下:

TEncSearch::xEstimateResidualQT函数展开: 也是一个嵌套.

 

TEncSearch::predInterSearch函数展开:

进一步把TEncSearch::xMotionEstimation函数展开:

 

 

把第4层展开 xTZSearch函数如下:

 

 

下面是各个模块在整个编码中的复杂度(占用CPU百分比), 测试按照标准encoder_lowdelay_P_main.cfg来测试!

TEncSearch::encodeResAndCalcRdInterCU

57.22

TEncSearch::xEstimateResidualQT

54.76

TEncCu::xCheckRDCostInter

43.97

TEncCu::xCheckRDCostMerge2Nx2N

28.46

TEncSbac::codeCoeffNxN

25.37

TComTrQuant::transformNxN

20.17

TEncCu::xCheckRDCostIntra

19.04

TComTrQuant::xQuant

16.4

TEncSearch::predInterSearch

14.35

TEncSearch::estIntraPredQT

14.34

TComTrQuant::xRateDistOptQuant

11.84

TEncSearch::xMotionEstimation

9.7

TEncSearch::xTZSearch

8.37

TEncSearch::xRecurIntraCodingQT

8.16

TEncSearch::xTZSearchHelp

7.21

   从表中可以看出: 帧内编码小于20%, I帧间隔大的话,应该是小于10%.

  帧间编码60%左右, xRateDistOptQuant占用11%左右, transform占用5%, xQuant实际占用5%.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

大家分析的结果如何啊,讨论下,看下一步怎么做才能更好的优化出效果了!

 

 

 

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

HEVC-xCompressCU

// =================================================================================================...

HEVC-xCompressCU

本文的学习离不开各路大神的帮助,这里主要谢谢hevc_cjl和yangxiao_xiang喽~~~ // ==============================================...

playbook变量与引用

在介绍playbook变量与引用的时候我们先来了解下Ansible的变量来源。注:笔者的实验环境如下: 192.168.116.128 ansiblecontrol 部署ansible的server...

通过一个kaggle实例学习解决机器学习问题

之前写过一篇 一个框架解决几乎所有机器学习问题 但是没有具体的例子和代码,今天看到一个不错的 kaggle 上的 code Exploratory Tutorial - Titanic 来解析一下,源...

H.265/HEVC学习笔记之二:码流分析

与H.264/AVC类似,H.265/HEVC采用了视频编码层(Video Code Layer,VCL)和网络适配层(Network Abstract Layer,NAL),VLC层包含了视频数据的...

HEVC/H265 性能分析

HEVC/H265 标准中的目标是:H264的码率一般,质量一样,是否达到,数据说话。  下面是视频编解码大师测试数据: HEVC: is it really twice as good as ...

完成一个H.265/HEVC码流分析工具

经过大约一个月左右的业余时间,终于初步完成一个H.265/HEVC码流分析工具。时间包括平时的周末、晚上,以及调休的集中时间。当然,中秋回家过节不写代码。截至今天,经过多种H.265序列测试,也有各种...
  • subfate
  • subfate
  • 2015年10月01日 11:05
  • 2867

HEVC/H.265入门(2)--编码框架与流程

HEVC/H.265沿用了与H.264相同的基于块的视频混合编码框架:采用帧内预测消除图像的空间冗余,利用帧间预测消除视频的时间冗余,通过变换量化处理降低编码图像失真,再经过算术编码进一步减低统计冗余...
  • abcSunl
  • abcSunl
  • 2017年01月04日 16:30
  • 1127

基于匹配追踪的复杂度分析

  • 2015年05月20日 15:40
  • 144KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:HEVC/H.265整个程序调用流程分析以及函数复杂度分析
举报原因:
原因补充:

(最多只允许输入30个字)