HEVC帧间预测模式获取

       昨天尝试用markdown编辑博客文章,结果将生成的html文件导入博客编辑的时候失败,还真是郁闷。暂时先不纠结用什么编辑BLOG的事了,还是赶紧看看HEVC帧间预测模式 吧。  
       现在我想知道每个编码CU的预测模式的情况,那么首先就是看代码如何存储这些信息的了。昨天,我已经列出了编码CU需要遍历的所有的模式所调用的函数,这些函数计算编码模式代价值之后,选出最优模式,最终代码必然会保存这些信息以便于解码端解码。好的,看看他们保存在哪里。  

       进入xCompressCU函数里面,可以看出函数传入的参数有rpcBestCU,rpcTempCU,uiDepth,eParentPartSize。后两个参数就不说了,前两个参数一个是存储最优编码的参数的,后一个用于临时存储CU信息,大概可以知道我们要的信息在rpcBestCU这个对象里面。

Void TEncCu::xCompressCU( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, UInt uiDepth, PartSize eParentPartSize )


在这个对象的类里面,存储了解码需要的信息。已编码的单元可以得到这些信息。在TComDataCU中可以得到的编码信息有很多,只要调用函数就可以获得。比如,需要得到帧间编码模式,则调用getPartitionSize(UInt uiIdx)。

    //可以得到编码预测块的大小
     enum PartSize
    {
	SIZE_2Nx2N,           ///< symmetric motion partition,  2Nx2N对称分割
	SIZE_2NxN,            ///< symmetric motion partition,  2Nx N
	SIZE_Nx2N,            ///< symmetric motion partition,   Nx2N
	SIZE_NxN,             ///< symmetric motion partition,   Nx N
	SIZE_2NxnU,           ///< asymmetric motion partition, 2Nx( N/2) + 2Nx(3N/2)非对称分割
	SIZE_2NxnD,           ///< asymmetric motion partition, 2Nx(3N/2) + 2Nx( N/2)
	SIZE_nLx2N,           ///< asymmetric motion partition, ( N/2)x2N + (3N/2)x2N
	SIZE_nRx2N,           ///< asymmetric motion partition, (3N/2)x2N + ( N/2)x2N
	SIZE_NONE = 15
    };


举个栗子:如果编码块为是Inter2Nx2N模式,即遍历xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2Nx2N, bFMD )之后存储。rpcTempCU->setPartSizeSubParts( PartSize eMode, UInt uiAbsPartIdx, UInt uiDepth )保存模式时需要调用的函数。

      目前统计的工作已经结束,下面会研究3D-HEVC区别于HEVC的一些算法上面。

 

转载于:https://www.cnblogs.com/codingcouple/p/6512035.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值